public IList <OuterDecl> Prelude() { var assmLabels = assmManager.AllAssumptionLabels(); var globalAssmsLemmas = new LemmasDecl(globalAssmsName, assmLabels); var closedAssm = assmManager.GetAssumptionLabel(AssumptionManager.SpecialAssumptionsKind.TypeValClosed); var forallPolyThm = new LemmasDecl("forall_poly_thm", new List <string> { "forall_vc_type[OF " + closedAssm + "]" }); var existsPolyThm = new LemmasDecl("exists_poly_thm", new List <string> { "exists_vc_type[OF " + closedAssm + "]" }); // if One_nat_def is not removed from the simpset, then there is an issue with the assumption "ns 1 = ...", // since Isabelle rewrites it to Suc 0 and a subsequent step in the proof may fail var decl = new DeclareDecl("Nat.One_nat_def[simp del]"); return(new List <OuterDecl> { globalAssmsLemmas, forallPolyThm, existsPolyThm, decl }); }
public override int VisitDeclareDecl(DeclareDecl d) { _sb.AppendLine("declare " + d.Declaration); return(0); }