public static IEnumerable <ProofState> EvalPredicateStmt(PredicateStmt predicate, ProofState state) { Contract.Requires <ArgumentNullException>(predicate != null, "predicate"); foreach (var result in EvalTacnyExpression(state, predicate.Expr)) { var resultExpression = result is IVariable?Util.VariableToExpression(result as IVariable) : result as Expression; PredicateStmt newPredicate; var tok = predicate.Tok.Copy(); tok.line = TACNY_CODE_TOK_LINE; var endTok = predicate.EndTok.Copy(); endTok.line = TACNY_CODE_TOK_LINE; if (predicate is AssertStmt) { newPredicate = new AssertStmt(tok, endTok, resultExpression, predicate.Attributes); } else { newPredicate = new AssumeStmt(tok, endTok, resultExpression, predicate.Attributes); } var copy = state.Copy(); copy.AddStatement(newPredicate); copy.IfVerify = true; yield return(copy); } }
public static IEnumerable <ProofState> EvalPredicateStmt(PredicateStmt predicate, ProofState state) { Contract.Requires <ArgumentNullException>(predicate != null, "predicate"); var newPredicate = SimpExpr.SimpTacticExpr(state, predicate); var copy = state.Copy(); copy.AddStatement(newPredicate); copy.NeedVerify = true; yield return(copy); }
private static IEnumerable <ProofState> ResolvePredicateStmt(PredicateStmt predicate, ProofState state) { Contract.Requires <ArgumentNullException>(predicate != null, "predicate"); foreach (var result in EvaluateTacnyExpression(state, predicate.Expr)) { var resultExpression = result is IVariable?Util.VariableToExpression(result as IVariable) : result as Expression; PredicateStmt newPredicate; if (predicate is AssertStmt) { newPredicate = new AssertStmt(predicate.Tok, predicate.EndTok, resultExpression, predicate.Attributes); } else { newPredicate = new AssumeStmt(predicate.Tok, predicate.EndTok, resultExpression, predicate.Attributes); } var copy = state.Copy(); copy.AddStatement(newPredicate); yield return(copy); } }
private static IEnumerable<ProofState> ResolvePredicateStmt(PredicateStmt predicate, ProofState state) { Contract.Requires<ArgumentNullException>(predicate != null, "predicate"); foreach (var result in EvaluateTacnyExpression(state, predicate.Expr)) { var resultExpression = result is IVariable ? Util.VariableToExpression(result as IVariable) : result as Expression; PredicateStmt newPredicate; if (predicate is AssertStmt) { newPredicate = new AssertStmt(predicate.Tok, predicate.EndTok, resultExpression, predicate.Attributes); } else { newPredicate = new AssumeStmt(predicate.Tok, predicate.EndTok, resultExpression, predicate.Attributes); } var copy = state.Copy(); copy.AddStatement(newPredicate); yield return copy; } }
public static IEnumerable<ProofState> EvalPredicateStmt(PredicateStmt predicate, ProofState state) { Contract.Requires<ArgumentNullException>(predicate != null, "predicate"); foreach(var result in EvalTacnyExpression(state, predicate.Expr)) { var resultExpression = result is IVariable ? Util.VariableToExpression(result as IVariable) : result as Expression; PredicateStmt newPredicate; var tok = predicate.Tok.Copy(); tok.line = TACNY_CODE_TOK_LINE; var endTok = predicate.EndTok.Copy(); endTok.line = TACNY_CODE_TOK_LINE; if(predicate is AssertStmt) { newPredicate = new AssertStmt(tok, endTok, resultExpression, predicate.Attributes); } else { newPredicate = new AssumeStmt(tok, endTok, resultExpression, predicate.Attributes); } var copy = state.Copy(); copy.AddStatement(newPredicate); copy.IfVerify = true; yield return copy; } }