]> matita.cs.unibo.it Git - helm.git/commitdiff
Added initial support for inversion principles in Matita NG.
authorWilmer Ricciotti <ricciott@cs.unibo.it>
Wed, 30 Sep 2009 13:35:06 +0000 (13:35 +0000)
committerWilmer Ricciotti <ricciott@cs.unibo.it>
Wed, 30 Sep 2009 13:35:06 +0000 (13:35 +0000)
Added a case_tac tactical, performing goal selection matching metavariables by
means of their associated tag.
Added tagged implicits, which are refined as tagged metavariables.

61 files changed:
helm/software/components/Makefile
helm/software/components/acic_content/.depend
helm/software/components/acic_content/cicNotationPt.ml
helm/software/components/acic_procedural/.depend
helm/software/components/binaries/extractor/.depend
helm/software/components/binaries/matitaprover/Makefile
helm/software/components/binaries/table_creator/.depend
helm/software/components/binaries/transcript/.depend
helm/software/components/binaries/transcript/.depend.opt
helm/software/components/cic/.depend
helm/software/components/cic_acic/.depend
helm/software/components/cic_disambiguation/.depend
helm/software/components/cic_disambiguation/cicDisambiguate.ml
helm/software/components/cic_exportation/.depend
helm/software/components/cic_proof_checking/.depend
helm/software/components/cic_unification/.depend
helm/software/components/content_pres/.depend
helm/software/components/content_pres/content2pres.ml
helm/software/components/disambiguation/.depend
helm/software/components/extlib/.depend
helm/software/components/getter/.depend
helm/software/components/getter/http_getter_wget.ml
helm/software/components/grafite/.depend
helm/software/components/grafite/grafiteAst.ml
helm/software/components/grafite/grafiteAstPp.ml
helm/software/components/grafite_engine/.depend
helm/software/components/grafite_engine/grafiteEngine.ml
helm/software/components/grafite_engine/grafiteEngine.mli
helm/software/components/grafite_parser/.depend
helm/software/components/grafite_parser/grafiteParser.ml
helm/software/components/hgdome/.depend
helm/software/components/hmysql/.depend
helm/software/components/lexicon/.depend
helm/software/components/library/.depend
helm/software/components/logger/.depend
helm/software/components/metadata/.depend
helm/software/components/ng_cic_content/.depend
helm/software/components/ng_disambiguation/.depend
helm/software/components/ng_disambiguation/nCicDisambiguate.ml
helm/software/components/ng_kernel/.depend
helm/software/components/ng_kernel/nCic.ml
helm/software/components/ng_kernel/nCicPp.ml
helm/software/components/ng_paramodulation/.depend
helm/software/components/ng_refiner/.depend
helm/software/components/ng_refiner/nCicRefiner.ml
helm/software/components/ng_tactics/.depend
helm/software/components/ng_tactics/Makefile
helm/software/components/ng_tactics/nInversion.ml [new file with mode: 0644]
helm/software/components/ng_tactics/nInversion.mli [new file with mode: 0644]
helm/software/components/ng_tactics/nTactics.ml
helm/software/components/ng_tactics/nTactics.mli
helm/software/components/registry/.depend
helm/software/components/syntax_extensions/.depend
helm/software/components/tactics/.depend
helm/software/components/tactics/tactics.mli
helm/software/components/thread/.depend
helm/software/components/tptp_grafite/.depend
helm/software/components/urimanager/.depend
helm/software/components/whelp/.depend
helm/software/components/xml/.depend
helm/software/components/xmldiff/.depend

index b7c105fc01e4dc053b3d69e58b1f9d8a0010d7ae..7035411f3984434a49a7d00fbe4e469515e14509 100644 (file)
@@ -42,6 +42,8 @@ MODULES =                     \
        ng_tactics              \
        grafite_engine          \
        tptp_grafite            \
+       ng_kernel               \
+       ng_refiner              \
        $(NULL)
 
 METAS = $(MODULES:%=METAS/META.helm-%)
index 89dca0e446d48d1f05a1cda5fc3c39f1095257e3..8ade458af771b340426f4e4606d92e511c459a56 100644 (file)
@@ -1,4 +1,3 @@
-content.cmi: 
 acic2content.cmi: content.cmi 
 content2cic.cmi: content.cmi 
 cicNotationUtil.cmi: cicNotationPt.cmo 
@@ -6,8 +5,6 @@ cicNotationEnv.cmi: cicNotationPt.cmo
 cicNotationPp.cmi: cicNotationPt.cmo cicNotationEnv.cmi 
 acic2astMatcher.cmi: cicNotationPt.cmo 
 termAcicContent.cmi: cicNotationPt.cmo 
-cicNotationPt.cmo: 
-cicNotationPt.cmx: 
 content.cmo: content.cmi 
 content.cmx: content.cmi 
 acic2content.cmo: content.cmi acic2content.cmi 
index 75e580d00e0cc0c93a93aacb1c35c505783916e6..0480c3d26a53fac04b659530acc2295a622565d6 100644 (file)
@@ -83,7 +83,7 @@ type term =
       (* literal, substitutions.
       * Some [] -> user has given an empty explicit substitution list 
       * None -> user has given no explicit substitution list *)
-  | Implicit of [`Vector | `JustOne]
+  | Implicit of [`Vector | `JustOne | `Tagged of string]
   | Meta of int * meta_subst list
   | Num of string * int (* literal, instance *)
   | Sort of sort_kind
index 97238c4d861fc8ee80cbafc6c9c6337d3e3babf2..8d0128744c8b9e740462a1a8001764036199a67e 100644 (file)
@@ -1,13 +1,6 @@
-proceduralHelpers.cmi: 
-proceduralClassify.cmi: 
-proceduralOptimizer.cmi: 
-proceduralTypes.cmi: 
-proceduralMode.cmi: 
-proceduralConversion.cmi: 
 procedural1.cmi: proceduralTypes.cmi 
 procedural2.cmi: proceduralTypes.cmi 
 proceduralTeX.cmi: proceduralTypes.cmi 
-acic2Procedural.cmi: 
 proceduralHelpers.cmo: proceduralHelpers.cmi 
 proceduralHelpers.cmx: proceduralHelpers.cmi 
 proceduralClassify.cmo: proceduralHelpers.cmi proceduralClassify.cmi 
index 0c39328ae147e8ab714b2d3a7b1582a011b2b1d6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,4 +0,0 @@
-extractor.cmo: 
-extractor.cmx: 
-extractor_manager.cmo: 
-extractor_manager.cmx: 
index 2b35935d95b5a8e7de4b5aabd8a9f8d1dc26391f..edae652aecf7410f7a355e0e4363ecbe2886bfac 100644 (file)
@@ -11,6 +11,7 @@ clean:
 
 dist:
        mkdir -p $(DIST)/Sources
+       cp ReadMe $(DIST)
        cp *.ml *.mli *.mll *.mly Makefile _tags $(DIST)/Sources
        cd $(DIST); ln -s Sources/matitaprover.native matitaprover
        tar -cvzf $(DIST).tgz $(DIST)
index 33147b94948d28fc9c7132773964d2547472c2ba..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-table_creator.cmo: 
-table_creator.cmx: 
index 87d1ed25c2745435771cee189c10da4a99854448..bb6f22a64b02f88c3881f2c3f490d7f81b186897 100644 (file)
@@ -1,11 +1,6 @@
 gallina8Parser.cmi: types.cmo 
 grafiteParser.cmi: types.cmo 
 grafite.cmi: types.cmo 
-engine.cmi: 
-types.cmo: 
-types.cmx: 
-options.cmo: 
-options.cmx: 
 gallina8Parser.cmo: types.cmo options.cmo gallina8Parser.cmi 
 gallina8Parser.cmx: types.cmx options.cmx gallina8Parser.cmi 
 gallina8Lexer.cmo: options.cmo gallina8Parser.cmi 
index f17459162ce81c0ad9c5352cca5e9d99f43cb81c..efadc681eee16cb3cd170845fdd1c7549fbb89b0 100644 (file)
@@ -1,11 +1,6 @@
 gallina8Parser.cmi: types.cmx 
 grafiteParser.cmi: types.cmx 
 grafite.cmi: types.cmx 
-engine.cmi: 
-types.cmo: 
-types.cmx: 
-options.cmo: 
-options.cmx: 
 gallina8Parser.cmo: types.cmx options.cmx gallina8Parser.cmi 
 gallina8Parser.cmx: types.cmx options.cmx gallina8Parser.cmi 
 gallina8Lexer.cmo: options.cmx gallina8Parser.cmi 
index a835b247f3b3006e53a73a62b9ff56d394eca590..c2c7105c727f1c8101a1a119d3521629984d3dcf 100644 (file)
@@ -1,10 +1,8 @@
-cicUniv.cmi: 
 unshare.cmi: cic.cmo 
 deannotate.cmi: cic.cmo 
 cicParser.cmi: cic.cmo 
 cicUtil.cmi: cic.cmo 
 helmLibraryObjects.cmi: cic.cmo 
-libraryObjects.cmi: 
 cic_indexable.cmi: cic.cmo 
 path_indexing.cmi: cic.cmo 
 cicInspect.cmi: cic.cmo 
index 5449d50aaa2d43c1a8126f0561177e904f0975da..3fc1e0dce9eedda1f0bb74a669ad175582f03e06 100644 (file)
@@ -1,6 +1,3 @@
-eta_fixing.cmi: 
-doubleTypeInference.cmi: 
-cic2acic.cmi: 
 cic2Xml.cmi: cic2acic.cmi 
 eta_fixing.cmo: eta_fixing.cmi 
 eta_fixing.cmx: eta_fixing.cmi 
index a9ae65a5e3c4c3df2f8aaca3b2762c794bee6bd5..e9bd1168f73e4e834b02480bca0e67e381fc4997 100644 (file)
@@ -1,5 +1,3 @@
-cicDisambiguate.cmi: 
-disambiguateChoices.cmi: 
 cicDisambiguate.cmo: cicDisambiguate.cmi 
 cicDisambiguate.cmx: cicDisambiguate.cmi 
 disambiguateChoices.cmo: disambiguateChoices.cmi 
index e52db62ddf293312f8707cf8cbde58a40528485f..db305e5d5be35be6263eadca1fba077b1db66418 100644 (file)
@@ -485,7 +485,7 @@ let interpretate_term ~mk_choice ?(create_dummy_ids=false) ~context ~env ~uri
              CicEnvironment.CircularDependency _ -> 
                raise (DisambiguateTypes.Invalid_choice (lazy (loc,"Circular dependency in the environment")))))
     | CicNotationPt.Implicit `Vector -> assert false
-    | CicNotationPt.Implicit `JustOne -> Cic.Implicit None
+    | CicNotationPt.Implicit (`JustOne | `Tagged _) -> Cic.Implicit None
     | CicNotationPt.UserInput -> Cic.Implicit (Some `Hole)
     | CicNotationPt.Num (num, i) ->
        Disambiguate.resolve ~mk_choice ~env
index 91be8d88d36bf6f3df5cd920db6a75f80a5ff64d..288ea5f6cf50f1cb6bb8ff00d53a0262825c3459 100644 (file)
@@ -1,3 +1,2 @@
-cicExportation.cmi: 
 cicExportation.cmo: cicExportation.cmi 
 cicExportation.cmx: cicExportation.cmi 
index f8a16629ebd091a0c9e60b948c7e2eedb8908a16..5d83fd0f3d146e2d80ead2d8eb5c34b162a5835f 100644 (file)
@@ -1,13 +1,3 @@
-cicLogger.cmi: 
-cicEnvironment.cmi: 
-cicPp.cmi: 
-cicUnivUtils.cmi: 
-cicSubstitution.cmi: 
-cicMiniReduction.cmi: 
-cicReduction.cmi: 
-cicTypeChecker.cmi: 
-freshNamesGenerator.cmi: 
-cicDischarge.cmi: 
 cicLogger.cmo: cicLogger.cmi 
 cicLogger.cmx: cicLogger.cmi 
 cicEnvironment.cmo: cicEnvironment.cmi 
index 2e054f73d4e69376cc89138609538274bd8fe6d8..a7b23ceb4e8ba6ae3fdc2fa8352ce69acbde78b0 100644 (file)
@@ -1,10 +1,3 @@
-cicMetaSubst.cmi: 
-cicMkImplicit.cmi: 
-termUtil.cmi: 
-coercGraph.cmi: 
-cicUnification.cmi: 
-cicReplace.cmi: 
-cicRefine.cmi: 
 cicMetaSubst.cmo: cicMetaSubst.cmi 
 cicMetaSubst.cmx: cicMetaSubst.cmi 
 cicMkImplicit.cmo: cicMkImplicit.cmi 
index 8d74439eb72834455b6f06006f1f5534312a3a51..6dd0e78a19212937b664b03fb796d8aaf496dbbb 100644 (file)
@@ -1,9 +1,3 @@
-renderingAttrs.cmi: 
-cicNotationLexer.cmi: 
-cicNotationParser.cmi: 
-mpresentation.cmi: 
-box.cmi: 
-content2presMatcher.cmi: 
 termContentPres.cmi: cicNotationParser.cmi 
 boxPp.cmi: mpresentation.cmi cicNotationPres.cmi box.cmi 
 cicNotationPres.cmi: mpresentation.cmi box.cmi 
index 9c389467c1f6cef38b4bd03536040ed599024033..c88f87535f71fe71aa6aac2e539060ad8cea7ae6 100644 (file)
@@ -136,7 +136,8 @@ let rec justification ~for_rewriting_step ~ignore_atoms term2pres p =
       make_args_for_apply term2pres p.Con.proof_conclude.Con.conclude_args
     in
      [B.H([],
-       (if for_rewriting_step then (B.b_kw "exact") else (B.b_kw "by"))::
+     (*(if for_rewriting_step then (B.b_kw "exact") else (B.b_kw "by"))::*)
+       (B.b_kw "by")::
        B.b_space::
        B.Text([],"(")::pres_args@[B.Text([],")")])], None 
   else
index 9fdbeeeafa878cfe32dbf1f96adaad1e3044a4eb..aba9ffea7f8db60089a7cf1831da09dcf9d0c67d 100644 (file)
@@ -1,4 +1,3 @@
-disambiguateTypes.cmi: 
 disambiguate.cmi: disambiguateTypes.cmi 
 multiPassDisambiguator.cmi: disambiguateTypes.cmi disambiguate.cmi 
 disambiguateTypes.cmo: disambiguateTypes.cmi 
index dcc6377a0664b620f19f47d8103c5b3a88a03270..201cd0cba99efc82def4f425a72ba0e952c1a5ea 100644 (file)
@@ -1,13 +1,3 @@
-componentsConf.cmi: 
-hExtlib.cmi: 
-hMarshal.cmi: 
-patternMatcher.cmi: 
-hLog.cmi: 
-trie.cmi: 
-discrimination_tree.cmi: 
-hTopoSort.cmi: 
-refCounter.cmi: 
-graphvizPp.cmi: 
 componentsConf.cmo: componentsConf.cmi 
 componentsConf.cmx: componentsConf.cmi 
 hExtlib.cmo: hExtlib.cmi 
index ca64d8ec04f2c9e9b431d4921064c88bbb7587c9..20f69cf0c810c91e600fa5263c93c1b0ce86f3cb 100644 (file)
@@ -1,13 +1,6 @@
-http_getter_wget.cmi: 
-http_getter_logger.cmi: 
-http_getter_misc.cmi: 
-http_getter_const.cmi: 
 http_getter_env.cmi: http_getter_types.cmo 
-http_getter_storage.cmi: 
 http_getter_common.cmi: http_getter_types.cmo 
 http_getter.cmi: http_getter_types.cmo 
-http_getter_types.cmo: 
-http_getter_types.cmx: 
 http_getter_wget.cmo: http_getter_types.cmo http_getter_wget.cmi 
 http_getter_wget.cmx: http_getter_types.cmx http_getter_wget.cmi 
 http_getter_logger.cmo: http_getter_logger.cmi 
index 90e60b4048dce55cfe76094f4a2877b41bc87727..571479d78e1c949ff569fb202a1a45d96f4428c4 100644 (file)
@@ -68,5 +68,6 @@ let exists url =
     true
   with
      Http_user_agent.Http_error _ -> false
-   | Not_found -> prerr_endline "An object has metadata but no XML. This is an internal bug of ocaml-http: Zack, please fix it!"; assert false
+   | Not_found -> prerr_endline (Printf.sprintf "An object %s has metadata but no XML. This is an internal bug of ocaml-http: Zack, please fix it!" 
+                  url); assert false
 
index f305b15803a9f6b7f87ab353a1e871afb8f6a1a5..dc225e2212dc37bb6eb22aa150fddf713965a312 100644 (file)
@@ -1,7 +1,5 @@
 grafiteAstPp.cmi: grafiteAst.cmo 
 grafiteMarshal.cmi: grafiteAst.cmo 
-grafiteAst.cmo: 
-grafiteAst.cmx: 
 grafiteAstPp.cmo: grafiteAst.cmo grafiteAstPp.cmi 
 grafiteAstPp.cmx: grafiteAst.cmx grafiteAstPp.cmi 
 grafiteMarshal.cmo: grafiteAstPp.cmi grafiteAst.cmo grafiteMarshal.cmi 
index 8fc37e4c543c430bd4a5ea08ea40a90953cbbee9..86e657b6b5fe15eea32be64c15eda1fd5333ff03 100644 (file)
@@ -197,7 +197,7 @@ type nmacro =
 
 (** To be increased each time the command type below changes, used for "safe"
  * marshalling *)
-let magic = 28
+let magic = 30
 
 type ('term,'obj) command =
   | Index of loc * 'term option (* key *) * UriManager.uri (* value *)
@@ -220,6 +220,7 @@ type ('term,'obj) command =
 type ncommand =
   | UnificationHint of loc * CicNotationPt.term * int (* term, precedence *)
   | NObj of loc * CicNotationPt.term CicNotationPt.obj
+  | NInverter of loc * string * CicNotationPt.term
   | NUnivConstraint of loc * NUri.uri * NUri.uri
   | NCopy of loc * string * NUri.uri * (NUri.uri * NUri.uri) list
   | NCoercion of loc * string *
index 76651753f92cbe6c6232f7b53ab43efc84b654a8..8cb7538ba2ad84dc4b322a3d979f0c2f406d4327 100644 (file)
@@ -371,6 +371,7 @@ let pp_coercion ~term_pp t do_composites arity saturations=
 let pp_ncommand = function
   | UnificationHint (_,t, n) -> 
       "unification hint " ^ string_of_int n ^ " " ^ CicNotationPp.pp_term t
+  | NInverter (_,_,_)
   | NObj (_,_)
   | NUnivConstraint (_) -> "not supported"
   | NCoercion (_) -> "not supported"
index 10236823af172c045fb709552131af884aaf6872..a545f14e33d0a91238cbcf0bd0a65c6eb18b1eae 100644 (file)
@@ -1,4 +1,3 @@
-grafiteTypes.cmi: 
 grafiteSync.cmi: grafiteTypes.cmi 
 nCicCoercDeclaration.cmi: grafiteTypes.cmi 
 grafiteEngine.cmi: grafiteTypes.cmi 
index 482a138a6c8f4ce16863c36b5a92b3bfe561deb1..0806057ec14ab1d67189dba4832028c6509576db 100644 (file)
@@ -861,6 +861,27 @@ let rec eval_ncommand opts status (text,prefix_len,cmd) =
           [] ->
            eval_ncommand opts status ("",0,GrafiteAst.NQed Stdpp.dummy_loc)
         | _ -> status,`New [])
+  | GrafiteAst.NInverter (loc, name, indty) ->
+     if status#ng_mode <> `CommandMode then
+      raise (GrafiteTypes.Command_error "Not in command mode")
+     else
+      let status = status#set_ng_mode `ProofMode in
+      let metasenv,subst,status,indty =
+       GrafiteDisambiguate.disambiguate_nterm None status [] [] [] (text,prefix_len,indty) in
+      let _,leftno,tys,_,_ = match indty with
+          NCic.Const r -> NCicEnvironment.get_checked_indtys r
+        | _ -> assert false in
+      let it = match tys with
+          hd::tl -> hd
+        | _ -> assert false
+      in
+     let status,obj =
+      NInversion.mk_inverter name it leftno status status#baseuri in
+     let _,_,menv,_,_ = obj in
+     (match menv with
+        [] ->
+          eval_ncommand opts status ("",0,GrafiteAst.NQed Stdpp.dummy_loc)
+      | _ -> assert false)
   | GrafiteAst.NUnivConstraint (loc,u1,u2) ->
       eval_add_constraint status [`Type,u1] [`Type,u2]
 ;;
index 6993afcb28e85b94e1fc656d73c7abdcada88848..0b263157f63b162ca13664bb19f74eb26c98fb6b 100644 (file)
@@ -31,7 +31,7 @@ exception Macro of
 exception NMacro of GrafiteAst.loc * GrafiteAst.nmacro
 
 type 'a disambiguator_input = string * int * 'a
-  
+
 val eval_ast :
   disambiguate_tactic:
    (GrafiteTypes.status ->
@@ -57,4 +57,3 @@ val eval_ast :
   disambiguator_input ->
    (* the new status and generated objects, if any *)
    GrafiteTypes.status * [`Old of UriManager.uri list | `New of NUri.uri list]
-
index 2766b04d03ad96eb26664ce893da8d732191ede5..97bf4d7c26591b45c8b7710b18ccc7b10bfce265 100644 (file)
@@ -1,9 +1,4 @@
-dependenciesParser.cmi: 
-grafiteParser.cmi: 
-cicNotation2.cmi: 
-nEstatus.cmi: 
 grafiteDisambiguate.cmi: nEstatus.cmi 
-print_grammar.cmi: 
 dependenciesParser.cmo: dependenciesParser.cmi 
 dependenciesParser.cmx: dependenciesParser.cmi 
 grafiteParser.cmo: grafiteParser.cmi 
index 52f151fc274a59a8dca825506429c10d9f051c20..8a418200d94604127cd7aad3a000aafdca921417 100644 (file)
@@ -803,6 +803,8 @@ EXTEND
         G.NObj (loc, N.Theorem (nflavour, name, N.Implicit `JustOne, Some body))
     | IDENT "naxiom"; name = IDENT; SYMBOL ":"; typ = term ->
         G.NObj (loc, N.Theorem (`Axiom, name, typ, None))
+    | IDENT "ninverter"; name = IDENT; IDENT "for" ; indty = term -> 
+        G.NInverter (loc,name,indty)
     | NLETCOREC ; defs = let_defs -> 
         nmk_rec_corec `CoInductive defs loc
     | NLETREC ; defs = let_defs -> 
index 072d9697ac67fab4c4d0dffd6321082b1022c444..bf9c09af77949af3443918acfe26309ababdde62 100644 (file)
@@ -1,5 +1,3 @@
-domMisc.cmi: 
-xml2Gdome.cmi: 
 domMisc.cmo: domMisc.cmi 
 domMisc.cmx: domMisc.cmi 
 xml2Gdome.cmo: xml2Gdome.cmi 
index ce439d961c5806d62c02572a1790a6b6591aad1a..16e6e9da7ff478b574edcc5f5756da5ac302ed34 100644 (file)
@@ -1,7 +1,2 @@
-hSql.cmi: 
-hSqlite3.cmo: 
-hSqlite3.cmx: 
-hMysql.cmo: 
-hMysql.cmx: 
 hSql.cmo: hSqlite3.cmo hMysql.cmo hSql.cmi 
 hSql.cmx: hSqlite3.cmx hMysql.cmx hSql.cmi 
index 16c1145165e3acf1c2c923e16a634ce3f3967bef..847a4a807733e1ff71a24f44d6ff3ed18dd0252b 100644 (file)
@@ -3,8 +3,6 @@ lexiconMarshal.cmi: lexiconAst.cmo
 cicNotation.cmi: lexiconAst.cmo 
 lexiconEngine.cmi: lexiconMarshal.cmi lexiconAst.cmo cicNotation.cmi 
 lexiconSync.cmi: lexiconEngine.cmi lexiconAst.cmo 
-lexiconAst.cmo: 
-lexiconAst.cmx: 
 lexiconAstPp.cmo: lexiconAst.cmo lexiconAstPp.cmi 
 lexiconAstPp.cmx: lexiconAst.cmx lexiconAstPp.cmi 
 lexiconMarshal.cmo: lexiconAstPp.cmi lexiconAst.cmo lexiconMarshal.cmi 
index cfa1295edcd418319d423cb3ad3f4cc106a1ff21..a9f24f814f3dfb119e00e1fe2f6d71ef565d38ff 100644 (file)
@@ -1,13 +1,4 @@
-librarian.cmi: 
-libraryMisc.cmi: 
-libraryDb.cmi: 
-coercDb.cmi: 
 cicCoercion.cmi: coercDb.cmi 
-librarySync.cmi: 
-cicElim.cmi: 
-cicRecord.cmi: 
-cicFix.cmi: 
-libraryClean.cmi: 
 librarian.cmo: librarian.cmi 
 librarian.cmx: librarian.cmi 
 libraryMisc.cmo: libraryMisc.cmi 
index dfb4400ff0dce00c92943043edccecc0c1222ed5..28268d29ee15cd05d86a0565b7d47abfe8ecf81f 100644 (file)
@@ -1,3 +1,2 @@
-helmLogger.cmi: 
 helmLogger.cmo: helmLogger.cmi 
 helmLogger.cmx: helmLogger.cmi 
index 78cd97a0deff8787b73aed2878acef8374029ee0..492a34e3a9dad11aa9a08d4a09802647c6e0bf95 100644 (file)
@@ -1,5 +1,3 @@
-sqlStatements.cmi: 
-metadataTypes.cmi: 
 metadataExtractor.cmi: metadataTypes.cmi 
 metadataPp.cmi: metadataTypes.cmi 
 metadataConstraints.cmi: metadataTypes.cmi 
index 1316c8eab83e4c08ca7047ed72175492e98197a1..b4e17fa99bca931a5289d06541f5b69060d11594 100644 (file)
@@ -1,5 +1,3 @@
-ncic2astMatcher.cmi: 
-nTermCicContent.cmi: 
 ncic2astMatcher.cmo: ncic2astMatcher.cmi 
 ncic2astMatcher.cmx: ncic2astMatcher.cmi 
 nTermCicContent.cmo: ncic2astMatcher.cmi nTermCicContent.cmi 
index 2de54dc5eaedce21d8850cc5f76cc76f38331752..6b4ef95c1ee75472df6140057f1b06851033b996 100644 (file)
@@ -1,3 +1,2 @@
-nCicDisambiguate.cmi: 
 nCicDisambiguate.cmo: nCicDisambiguate.cmi 
 nCicDisambiguate.cmx: nCicDisambiguate.cmi 
index 4ea6e5ac3e4dd3ee47655f62a2ac1ed05254dc8f..ff74d233a7573c63233a57fde2b0ce38e2e4e35b 100644 (file)
@@ -331,6 +331,7 @@ let interpretate_term_and_interpretate_term_option
     | CicNotationPt.NRef nref -> NCic.Const nref
     | CicNotationPt.Implicit `Vector -> NCic.Implicit `Vector
     | CicNotationPt.Implicit `JustOne -> NCic.Implicit `Term
+    | CicNotationPt.Implicit (`Tagged s) -> NCic.Implicit (`Tagged s)
     | CicNotationPt.UserInput -> NCic.Implicit `Hole
     | CicNotationPt.Num (num, i) -> 
         Disambiguate.resolve ~env ~mk_choice (Num i) (`Num_arg num)
index a411383423165650cb5f7e49eb9b516d94989881..4b11d9af63b98c6343b5fcc70cb32931340bc6ad 100644 (file)
@@ -1,4 +1,3 @@
-nUri.cmi: 
 nReference.cmi: nUri.cmi 
 nCicUtils.cmi: nCic.cmo 
 nCicSubstitution.cmi: nCic.cmo 
index f39cf868e32fe905a123e4c8b3f516d67e4a68f7..fead92210f45053b925c7acbc82aeb6f55b64cce 100644 (file)
@@ -22,7 +22,8 @@ type universe = (univ_algebra * NUri.uri) list
 type sort = Prop | Type of universe
 
 type implicit_annotation =
- [ `Closed | `Type | `Hole | `Term | `Typeof of int | `Vector ]
+ [ `Closed | `Type | `Hole | `Tagged of string | `Term | `Typeof of int | `Vector ]
+
 
 type lc_kind = Irl of int | Ctx of term list
 
index 12227b4b190126414e97210547faf4625781db42..ddecb4dfb9ba75c299211307787ce68e27363de3 100644 (file)
@@ -57,6 +57,7 @@ let string_of_implicit_annotation = function
   | `Closed -> "â–ª"
   | `Type -> ""
   | `Hole -> "â–¡"
+  | `Tagged s -> "[\"" ^ s ^ "\"]"
   | `Term -> "Term"
   | `Typeof x -> "Ty("^string_of_int x^")"
   | `Vector -> "…"
index 369ed6b69068acbe0644b42cf2d38e8f5bb48c02..3ace5101400f920267785840a298257e8a1a2078 100644 (file)
@@ -1,4 +1,3 @@
-terms.cmi: 
 pp.cmi: terms.cmi 
 foSubst.cmi: terms.cmi 
 orderings.cmi: terms.cmi 
@@ -11,7 +10,6 @@ paramod.cmi: terms.cmi orderings.cmi
 nCicBlob.cmi: terms.cmi 
 cicBlob.cmi: terms.cmi 
 nCicProof.cmi: terms.cmi 
-nCicParamod.cmi: 
 terms.cmo: terms.cmi 
 terms.cmx: terms.cmi 
 pp.cmo: terms.cmi pp.cmi 
index dc9a46fb3e7da7a8b547e24396f3eb5ea41ad9bf..f30b906fd908a88f33150931a8bd8e0d5d232e35 100644 (file)
@@ -1,8 +1,5 @@
-nDiscriminationTree.cmi: 
-nCicMetaSubst.cmi: 
-nCicUnifHint.cmi: 
 nCicCoercion.cmi: nCicUnifHint.cmi 
-nRstatus.cmi: nCicUnifHint.cmi nCicCoercion.cmi 
+nRstatus.cmi: nCicCoercion.cmi 
 nCicUnification.cmi: nRstatus.cmi 
 nCicRefiner.cmi: nRstatus.cmi 
 nDiscriminationTree.cmo: nDiscriminationTree.cmi 
@@ -15,12 +12,10 @@ nCicCoercion.cmo: nDiscriminationTree.cmi nCicUnifHint.cmi nCicMetaSubst.cmi \
     nCicCoercion.cmi 
 nCicCoercion.cmx: nDiscriminationTree.cmx nCicUnifHint.cmx nCicMetaSubst.cmx \
     nCicCoercion.cmi 
-nRstatus.cmo: nCicUnifHint.cmi nCicCoercion.cmi nRstatus.cmi 
-nRstatus.cmx: nCicUnifHint.cmx nCicCoercion.cmx nRstatus.cmi 
-nCicUnification.cmo: nRstatus.cmi nCicUnifHint.cmi nCicMetaSubst.cmi \
-    nCicCoercion.cmi nCicUnification.cmi 
-nCicUnification.cmx: nRstatus.cmx nCicUnifHint.cmx nCicMetaSubst.cmx \
-    nCicCoercion.cmx nCicUnification.cmi 
+nRstatus.cmo: nCicCoercion.cmi nRstatus.cmi 
+nRstatus.cmx: nCicCoercion.cmx nRstatus.cmi 
+nCicUnification.cmo: nCicUnifHint.cmi nCicMetaSubst.cmi nCicUnification.cmi 
+nCicUnification.cmx: nCicUnifHint.cmx nCicMetaSubst.cmx nCicUnification.cmi 
 nCicRefiner.cmo: nCicUnification.cmi nCicMetaSubst.cmi nCicCoercion.cmi \
     nCicRefiner.cmi 
 nCicRefiner.cmx: nCicUnification.cmx nCicMetaSubst.cmx nCicCoercion.cmx \
index 6664a5b9781cf0b06bb465c78f9f017558d6c522..03de06d1c6c3306613b31e77b2f24639be93ec3f 100644 (file)
@@ -42,6 +42,7 @@ let exp_implicit ~localise metasenv context expty t =
   | `Closed -> NCicMetaSubst.mk_meta metasenv [] (foo `Term)
   | `Type -> NCicMetaSubst.mk_meta metasenv context (foo `Type)
   | `Term -> NCicMetaSubst.mk_meta metasenv context (foo `Term)
+  | `Tagged s -> NCicMetaSubst.mk_meta ~name:s metasenv context (foo `Term)
   | `Vector ->
       raise (RefineFailure (lazy (localise t, "A vector of implicit terms " ^
        "can only be used in argument position")))
index 7c97b8cfa030ef2af60fe5b452ea9c638d2e3b99..0be1ac3f0aaaf291add2ce50be67e40775e91a88 100644 (file)
@@ -1,7 +1,5 @@
-nCicTacReduction.cmi: 
-nTacStatus.cmi: 
-nCicElim.cmi: 
 nTactics.cmi: nTacStatus.cmi 
+nInversion.cmi: nTacStatus.cmi 
 nCicTacReduction.cmo: nCicTacReduction.cmi 
 nCicTacReduction.cmx: nCicTacReduction.cmi 
 nTacStatus.cmo: nCicTacReduction.cmi nTacStatus.cmi 
@@ -10,3 +8,5 @@ nCicElim.cmo: nCicElim.cmi
 nCicElim.cmx: nCicElim.cmi 
 nTactics.cmo: nTacStatus.cmi nCicElim.cmi nTactics.cmi 
 nTactics.cmx: nTacStatus.cmx nCicElim.cmx nTactics.cmi 
+nInversion.cmo: nTactics.cmi nInversion.cmi 
+nInversion.cmx: nTactics.cmx nInversion.cmi 
index e5a6134395ae3ff4a96fef0ffb55dc79da0271b5..e99dd242222029ecaf0b79a2a6ac21be040627a4 100644 (file)
@@ -4,7 +4,8 @@ INTERFACE_FILES = \
        nCicTacReduction.mli \
        nTacStatus.mli \
        nCicElim.mli \
-       nTactics.mli 
+       nTactics.mli \
+       nInversion.mli
 
 IMPLEMENTATION_FILES = $(INTERFACE_FILES:%.mli=%.ml)
 
diff --git a/helm/software/components/ng_tactics/nInversion.ml b/helm/software/components/ng_tactics/nInversion.ml
new file mode 100644 (file)
index 0000000..366697e
--- /dev/null
@@ -0,0 +1,196 @@
+(*
+    ||M||  This file is part of HELM, an Hypertextual, Electronic        
+    ||A||  Library of Mathematics, developed at the Computer Science     
+    ||T||  Department, University of Bologna, Italy.                     
+    ||I||                                                                
+    ||T||  HELM is free software; you can redistribute it and/or         
+    ||A||  modify it under the terms of the GNU General Public License   
+    \   /  version 2 or (at your option) any later version.      
+     \ /   This software is distributed as is, NO WARRANTY.     
+      V_______________________________________________________________ *)
+
+(* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
+
+let fresh_name =
+ let i = ref 0 in
+ function () ->
+  incr i;
+  "z" ^ string_of_int !i
+;;
+
+let mk_id id =
+ let id = if id = "_" then fresh_name () else id in
+  CicNotationPt.Ident (id,None)
+;;
+
+let rec split_arity ~subst context te =
+  match NCicReduction.whd ~subst context te with
+   | NCic.Prod (name,so,ta) -> 
+       split_arity ~subst ((name, (NCic.Decl so))::context) ta
+   | t -> context, t
+;;
+
+let mk_appl =
+ function
+    [] -> assert false
+  | [x] -> x
+  | l -> CicNotationPt.Appl l
+;;
+
+let rec mk_prods l t =
+  match l with
+    [] -> t
+  | hd::tl -> CicNotationPt.Binder (`Forall, (mk_id hd, None), mk_prods tl t)
+;;
+
+let rec mk_lambdas l t =
+  match l with
+    [] -> t
+  | hd::tl -> CicNotationPt.Binder (`Lambda, (mk_id hd, None), mk_lambdas tl t)
+;;
+
+let rec mk_arrows l t =
+  match l with
+    [] -> t
+  | hd::tl -> CicNotationPt.Binder (`Forall, (mk_id "_", Some hd), mk_arrows tl t)
+;;
+
+let subst_metasenv_and_fix_names status =
+  let u,h,metasenv, subst,o = status#obj in
+  let o = 
+    NCicUntrusted.map_obj_kind ~skip_body:true 
+     (NCicUntrusted.apply_subst subst []) o
+  in
+   status#set_obj(u,h,NCicUntrusted.apply_subst_metasenv subst metasenv,subst,o)
+;;
+
+let mk_inverter name it leftno status baseuri =
+ prerr_endline ("leftno = " ^ string_of_int leftno);
+ let _,ind_name,ty,cl = it in
+ prerr_endline ("arity: " ^ NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] ty);
+ let ncons = List.length cl in
+ (*let params,ty = NCicReduction.split_prods ~subst:[] [] leftno ty in
+ let params = List.rev_map (function name,_ -> mk_id name) params in
+ prerr_endline ("lunghezza params = " ^ string_of_int (List.length params));*)
+ let args,sort = split_arity ~subst:[] [] ty in
+ prerr_endline ("arity sort: " ^ NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:args sort);
+ (*let args = List.rev_map (function name,_ -> mk_id name) args in
+ prerr_endline ("lunghezza args = " ^ string_of_int (List.length args));*)
+ let nparams = List.length args in
+ prerr_endline ("nparams = " ^ string_of_int nparams);
+
+ let xs = List.map (fun n -> "x" ^ (string_of_int n)) (HExtlib.list_seq 1 (nparams+1)) in
+ prerr_endline ("lunghezza xs = " ^ string_of_int (List.length xs));
+ let ls, rs = HExtlib.split_nth leftno xs in
+ prerr_endline ("lunghezza ls = " ^ string_of_int (List.length ls));
+ prerr_endline ("lunghezza rs = " ^ string_of_int (List.length rs));
+ let ys = List.map (fun n -> "y" ^ (string_of_int n)) (HExtlib.list_seq (leftno+1) (nparams+1)) in
+
+ let id_xs = List.map mk_id xs in
+ let id_ls = List.map mk_id ls in
+ let id_rs = List.map mk_id rs in
+ let id_ys = List.map mk_id ys in
+
+ (* pseudocode  let t = Lambda y1 ... yr. xs_ = ys_ -> pred *)
+
+ (* check: assuming we have more than one right parameter *) 
+ (* pred := P yr- *)
+ let pred = mk_appl ((mk_id "P")::id_ys) in
+ let selection = HExtlib.mk_list true (List.length ys) in
+ let prods =
+   let rec prodaux = function
+       [],[],[] -> pred
+     | false :: l,x::xs,y::ys -> prodaux (l,xs,ys)
+     | true :: l,x::xs,y::ys  -> 
+        CicNotationPt.Binder (`Forall, (mk_id "_", Some (mk_appl [mk_id "eq" ; CicNotationPt.Implicit `JustOne;x;y])),
+                              prodaux (l,xs,ys))
+     | _ -> assert false
+   in prodaux (selection,id_rs,id_ys)
+ in
+
+ let lambdas = mk_lambdas (ys@["p"]) prods in
+ let hyplist = 
+   let rec hypaux k = function
+       0 -> []
+     | n -> ("H" ^ string_of_int k) :: hypaux (k+1) (n-1)
+   in (hypaux 1 ncons)
+ in
+ prerr_endline ("lunghezza ys = " ^ string_of_int (List.length ys));
+ let theorem = mk_prods xs
+                (CicNotationPt.Binder (`Forall, (mk_id "P", Some (mk_prods (HExtlib.mk_list "_" (List.length ys)) (CicNotationPt.Sort `Prop))),
+                mk_prods hyplist (CicNotationPt.Binder (`Forall, (mk_id "Hterm", (*Some (mk_appl (List.map mk_id (ind_name::xs)))) *)
+                                  Some (CicNotationPt.Implicit `JustOne)),
+                                  mk_appl (mk_id "P"::id_rs)))))
+ in 
+ let t = mk_appl ( [mk_id (ind_name ^ "_ind"); lambdas] @
+                   List.map mk_id hyplist @
+                   CicNotationPt.Implicit `Vector::[mk_id "Hterm"] ) in
+
+ prerr_endline ("NINVERTER 0");
+ let status, theorem = GrafiteDisambiguate.disambiguate_nobj status ~baseuri 
+                         (baseuri ^ name ^ ".def",
+                           0,CicNotationPt.Theorem (`Theorem,name,theorem,Some (CicNotationPt.Implicit (`Tagged "inv")))) in 
+ prerr_endline ("NINVERTER 1");
+ let uri,height,nmenv,nsubst,nobj = theorem in
+ let ninitial_stack = Continuationals.Stack.of_nmetasenv nmenv in
+ let status = status#set_obj theorem in
+ let status = status#set_stack ninitial_stack in
+ let status = subst_metasenv_and_fix_names status in
+
+ let cut_theorem = 
+   mk_arrows (List.map 
+     (fun x -> let x = mk_id x in mk_appl [mk_id "eq";
+                                           CicNotationPt.Implicit `JustOne;
+                                           x;x]) rs) (mk_appl (mk_id "P"::List.map mk_id rs)) in
+ let cut = mk_appl [CicNotationPt.Binder (`Lambda, (mk_id "Hcut", Some cut_theorem),
+                    CicNotationPt.Implicit (`Tagged "end"));
+                    CicNotationPt.Implicit (`Tagged "cut")] in
+ let intros = List.map (fun x -> NTactics.intro_tac x) (xs@["P"]@hyplist@["Hterm"]) in
+ (*let branches = 
+   let rec branch_aux k = function 
+       0 -> [NTactics.apply_tac ("",0,mk_id "H")]
+     | n -> NTactics.apply_tac ("",0,mk_id ("H"^(string_of_int k)))::(branch_aux (k+1) (n-1))
+   in branch_aux 1 ncons
+ in*)
+ let status = NTactics.block_tac 
+                        (NTactics.branch_tac::
+                         NTactics.case_tac "inv"::
+                         (intros @
+                          [NTactics.apply_tac ("",0,cut);
+                           NTactics.branch_tac;
+                           NTactics.case_tac "end";
+                           (*NTactics.intro_tac "Hcut";*)
+                           NTactics.apply_tac ("",0,mk_id "Hcut");
+                           NTactics.apply_tac ("",0,mk_id "refl_eq"); 
+                           NTactics.shift_tac;
+                           NTactics.case_tac "cut";
+                           NTactics.apply_tac ("",0,t);
+                        (*   NTactics.branch_tac]
+                          @ branches @ 
+                          [NTactics.merge_tac; *)
+                           NTactics.merge_tac;
+                           NTactics.merge_tac;
+                           NTactics.skip_tac])) status in
+ status,status#obj
+;;
+
+
+let ast_of_sort s =
+  match s with
+     NCic.Prop -> `Prop,"ind"
+   | NCic.Type u ->
+      let u = NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] (NCic.Sort s) in
+      (try
+        if String.sub u 0 4 = "Type" then
+         `NType (String.sub u 4 (String.length u - 4)), "rect_" ^ u
+        else if String.sub u 0 5 = "CProp" then
+         `NCProp (String.sub u 5 (String.length u - 5)), "rect_" ^ u
+        else
+         (prerr_endline u;
+         assert false)
+       with Failure _ -> assert false)
+;;
diff --git a/helm/software/components/ng_tactics/nInversion.mli b/helm/software/components/ng_tactics/nInversion.mli
new file mode 100644 (file)
index 0000000..4d6de91
--- /dev/null
@@ -0,0 +1,15 @@
+(*
+    ||M||  This file is part of HELM, an Hypertextual, Electronic        
+    ||A||  Library of Mathematics, developed at the Computer Science     
+    ||T||  Department, University of Bologna, Italy.                     
+    ||I||                                                                
+    ||T||  HELM is free software; you can redistribute it and/or         
+    ||A||  modify it under the terms of the GNU General Public License   
+    \   /  version 2 or (at your option) any later version.      
+     \ /   This software is distributed as is, NO WARRANTY.     
+      V_______________________________________________________________ *)
+
+(* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
+
+val mk_inverter: string -> NCic.inductiveType -> int -> (#NTacStatus.tac_status as 's) -> string -> 's * NCic.obj
+
index 01a57f0c45fa2851722bfac93e9f4e8bc8afceb6..8887175b4d95a77cf969680b8ce6e9073be9d687 100644 (file)
@@ -87,6 +87,25 @@ let pos_tac i_s status =
    status#set_stack gstatus
 ;;
 
+let case_tac lab status =
+  let gstatus = 
+    match status#stack with
+    | [] -> assert false
+    | ([ loc ], t, [],`BranchTag) :: (g', t', k', tag) :: s
+      when is_fresh loc ->
+        let l_js = List.filter 
+                     (fun curloc -> 
+                        let _,_,metasenv,_,_ = status#obj in
+                        match NCicUtils.lookup_meta (goal_of_loc curloc) metasenv with
+                            Some s,_,_ when s = lab -> true
+                          | _ -> false) ([loc] @+ g') in
+          ((l_js, t , [],`BranchTag)
+           :: (([ loc ] @+ g') @- l_js, t', k', tag) :: s)
+    | _ -> fail (lazy "can't use relative positioning here")
+  in
+   status#set_stack gstatus
+;;
+
 let wildcard_tac status =
   let gstatus = 
     match status#stack with
index 9afd918ead8c2fea14aab2e2a9108a6ad156a84e..8211adb37ca6c26e91e76716811f826de7ca0e0f 100644 (file)
@@ -15,6 +15,7 @@ val dot_tac: 's NTacStatus.tactic
 val branch_tac: 's NTacStatus.tactic
 val shift_tac: 's NTacStatus.tactic
 val pos_tac: int list -> 's NTacStatus.tactic
+val case_tac: string -> 's NTacStatus.tactic
 val wildcard_tac: 's NTacStatus.tactic
 val merge_tac: 's NTacStatus.tactic
 val focus_tac: int list -> 's NTacStatus.tactic
index 40c03891a7433c13e27e38dbe1cb51e06030c905..cf4f36b68f502fc728be91d4b20e8b0dcd3658f2 100644 (file)
@@ -1,3 +1,2 @@
-helm_registry.cmi: 
 helm_registry.cmo: helm_registry.cmi 
 helm_registry.cmx: helm_registry.cmi 
index 25e67131fca0487c4390d310d8307722b5058067..f3c6a8bd17a7351e99ce8e59905fda76a37cbf08 100644 (file)
@@ -1,5 +1,2 @@
-utf8Macro.cmi: 
-utf8MacroTable.cmo: 
-utf8MacroTable.cmx: 
 utf8Macro.cmo: utf8MacroTable.cmo utf8Macro.cmi 
 utf8Macro.cmx: utf8MacroTable.cmx utf8Macro.cmi 
index d9d6034a11e090bef20f2d14ccd1d8fb4e5692e2..169fc76b0e21d9fad98c2fa23430aeb0fa3a0f81 100644 (file)
@@ -1,19 +1,11 @@
-proofEngineTypes.cmi: 
 proofEngineHelpers.cmi: proofEngineTypes.cmi 
-proofEngineReduction.cmi: 
 continuationals.cmi: proofEngineTypes.cmi 
 tacticals.cmi: proofEngineTypes.cmi 
 reductionTactics.cmi: proofEngineTypes.cmi 
 proofEngineStructuralRules.cmi: proofEngineTypes.cmi 
 primitiveTactics.cmi: proofEngineTypes.cmi 
-hashtbl_equiv.cmi: 
 metadataQuery.cmi: proofEngineTypes.cmi 
-universe.cmi: 
 autoTypes.cmi: proofEngineTypes.cmi 
-autoCache.cmi: 
-paramodulation/utils.cmi: 
-closeCoercionGraph.cmi: 
-paramodulation/subst.cmi: 
 paramodulation/equality.cmi: paramodulation/utils.cmi \
     paramodulation/subst.cmi 
 paramodulation/founif.cmi: paramodulation/subst.cmi 
@@ -35,13 +27,10 @@ equalityTactics.cmi: proofEngineTypes.cmi
 auto.cmi: proofEngineTypes.cmi automationCache.cmi 
 destructTactic.cmi: proofEngineTypes.cmi 
 inversion.cmi: proofEngineTypes.cmi 
-inversion_principle.cmi: 
 ring.cmi: proofEngineTypes.cmi 
 setoids.cmi: proofEngineTypes.cmi 
-fourier.cmi: 
 fourierR.cmi: proofEngineTypes.cmi 
 fwdSimplTactic.cmi: proofEngineTypes.cmi 
-history.cmi: 
 statefulProofEngine.cmi: proofEngineTypes.cmi 
 tactics.cmi: tacticals.cmi proofEngineTypes.cmi automationCache.cmi auto.cmi 
 declarative.cmi: proofEngineTypes.cmi automationCache.cmi auto.cmi 
index 310cf42ef551db30fd3b5fd5ec1abf73db0076f2..4d143fd2a0d7b0ec389b60b8195b48bbde9d6587 100644 (file)
@@ -1,4 +1,4 @@
-(* GENERATED FILE, DO NOT EDIT. STAMP:Tue Apr 28 17:14:45 CEST 2009 *)
+(* GENERATED FILE, DO NOT EDIT. STAMP:Mon May 18 11:04:27 CEST 2009 *)
 val absurd : term:Cic.term -> ProofEngineTypes.tactic
 val apply : term:Cic.term -> ProofEngineTypes.tactic
 val applyP : term:Cic.term -> ProofEngineTypes.tactic
index 6616a03d0f4c0803fa1e9c2e309bbf89270e7526..7759190c66cdd57bcc79c0da85a571cd76faa730 100644 (file)
@@ -1,5 +1,3 @@
-threadSafe.cmi: 
-extThread.cmi: 
 threadSafe.cmo: threadSafe.cmi 
 threadSafe.cmx: threadSafe.cmi 
 extThread.cmo: extThread.cmi 
index a8972f4cfc20c049020440e4f567cfb622de8243..bc310327f83551dd5875e62bfa3899e7c55559a2 100644 (file)
@@ -1,7 +1,4 @@
 parser.cmi: ast.cmo 
-tptp2grafite.cmi: 
-ast.cmo: 
-ast.cmx: 
 lexer.cmo: parser.cmi 
 lexer.cmx: parser.cmx 
 parser.cmo: ast.cmo parser.cmi 
index 9cac9aa783c7c003e70e118017c77b20d2ccb61a..4821484239ac15df403da8d9123671544b3aa65f 100644 (file)
@@ -1,3 +1,2 @@
-uriManager.cmi: 
 uriManager.cmo: uriManager.cmi 
 uriManager.cmx: uriManager.cmi 
index 65dc079553f6476748ecdb106d61534fa746d753..39f37dfa90077f1212c1f51f57ef8c55a21174c7 100644 (file)
@@ -1,5 +1,3 @@
-whelp.cmi: 
-fwdQueries.cmi: 
 whelp.cmo: whelp.cmi 
 whelp.cmx: whelp.cmi 
 fwdQueries.cmo: fwdQueries.cmi 
index e7e7ffbd729fcdbc6206eb38afebf53940878718..5ef59bdc96d40e0a64e0f50d91b949382a7f57e0 100644 (file)
@@ -1,5 +1,3 @@
-xml.cmi: 
-xmlPushParser.cmi: 
 xml.cmo: xml.cmi 
 xml.cmx: xml.cmi 
 xmlPushParser.cmo: xmlPushParser.cmi 
index 65bd7b9496155f928775a264636cae0249c62a98..e2832de332dd83fb5bd4beb1cd2b1e735d6fe35e 100644 (file)
@@ -1,3 +1,2 @@
-xmlDiff.cmi: 
 xmlDiff.cmo: xmlDiff.cmi 
 xmlDiff.cmx: xmlDiff.cmi