private static Formula ReduceTuringMachineToSat(TuringMachineInfo pTmInfo) { Operator and = new Operator(Operator.Types.And); Formula formula = new Formula { HeadExactlyInOnePlace(pTmInfo), and, HeadInTheBeginningAtTheStart(), and, InTheBeginningStartState(), and, InitialiseTape(pTmInfo), and, NotMoreThanOneSymbolPerCell(pTmInfo), and, AtLeastOneSymbolPerCell(pTmInfo), and, AlwaysOnlyOneState(pTmInfo), and, SomeTimeAcceptance(pTmInfo), and, TransitionFunction(pTmInfo) }; return(formula); }
private static Bracket SomeTimeAcceptance(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket TransitionFunction(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket AlwaysOnlyOneState(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket AtLeastOneSymbolPerCell(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket NotMoreThanOneSymbolPerCell(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket InitialiseTape(TuringMachineInfo pTmInfo) { Bracket formula = new Bracket(); return(formula); }
private static Bracket HeadExactlyInOnePlace(TuringMachineInfo pTmInfo) { Operator not = new Operator(Operator.Types.Not); Operator or = new Operator(Operator.Types.Or); Bracket formula = new Bracket(); new Bracket() { not, new Variable("Hi,k"), or, not, new Variable("Hi,k") }; return(formula); }