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
            });
        }
Пример #2
0
 public override int VisitDeclareDecl(DeclareDecl d)
 {
     _sb.AppendLine("declare " + d.Declaration);
     return(0);
 }