diff options
-rw-r--r-- | .depend | 149 | ||||
-rw-r--r-- | .depend.camlp4 | 3 | ||||
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | parsing/g_ltac.ml4 | 160 | ||||
-rw-r--r-- | parsing/g_tactic.ml4 | 146 | ||||
-rw-r--r-- | tactics/tauto.ml4 | 2 |
6 files changed, 242 insertions, 225 deletions
@@ -29,8 +29,6 @@ kernel/typeops.cmi: kernel/environ.cmi kernel/evd.cmi kernel/inductive.cmi \ kernel/names.cmi kernel/sign.cmi kernel/term.cmi kernel/univ.cmi kernel/univ.cmi: kernel/names.cmi lib/pp.cmi lib/pp.cmi: lib/pp_control.cmi -lib/system.cmi: lib/pp.cmi -lib/util.cmi: lib/pp.cmi library/declare.cmi: kernel/cooking.cmi kernel/declarations.cmi \ kernel/environ.cmi kernel/evd.cmi kernel/inductive.cmi \ library/libobject.cmi kernel/names.cmi library/nametab.cmi \ @@ -51,6 +49,8 @@ library/library.cmi: library/lib.cmi library/libobject.cmi kernel/names.cmi \ library/nametab.cmi: library/libobject.cmi kernel/names.cmi lib/pp.cmi \ kernel/term.cmi lib/util.cmi library/summary.cmi: kernel/names.cmi +lib/system.cmi: lib/pp.cmi +lib/util.cmi: lib/pp.cmi parsing/ast.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/names.cmi \ parsing/pcoq.cmi lib/pp.cmi parsing/astterm.cmi: parsing/coqast.cmi kernel/environ.cmi kernel/evd.cmi \ @@ -202,19 +202,19 @@ toplevel/recordobj.cmi: kernel/term.cmi toplevel/searchisos.cmi: library/libobject.cmi kernel/names.cmi \ kernel/term.cmi toplevel/toplevel.cmi: parsing/pcoq.cmi lib/pp.cmi -toplevel/vernac.cmi: parsing/coqast.cmi parsing/pcoq.cmi toplevel/vernacentries.cmi: parsing/coqast.cmi kernel/environ.cmi \ kernel/names.cmi library/nametab.cmi proofs/proof_type.cmi \ kernel/term.cmi toplevel/vernacinterp.cmi toplevel/vernacinterp.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/names.cmi \ library/nametab.cmi proofs/proof_type.cmi +toplevel/vernac.cmi: parsing/coqast.cmi parsing/pcoq.cmi contrib/correctness/past.cmi: parsing/coqast.cmi kernel/names.cmi \ contrib/correctness/ptype.cmi kernel/term.cmi -contrib/correctness/pcic.cmi: contrib/correctness/past.cmi \ - pretyping/rawterm.cmi contrib/correctness/pcicenv.cmi: kernel/names.cmi \ contrib/correctness/penv.cmi contrib/correctness/prename.cmi \ kernel/sign.cmi kernel/term.cmi +contrib/correctness/pcic.cmi: contrib/correctness/past.cmi \ + pretyping/rawterm.cmi contrib/correctness/pdb.cmi: kernel/names.cmi contrib/correctness/past.cmi \ contrib/correctness/ptype.cmi contrib/correctness/peffect.cmi: kernel/names.cmi lib/pp.cmi @@ -401,30 +401,22 @@ lib/edit.cmo: lib/bstack.cmi lib/pp.cmi lib/util.cmi lib/edit.cmi lib/edit.cmx: lib/bstack.cmx lib/pp.cmx lib/util.cmx lib/edit.cmi lib/explore.cmo: lib/explore.cmi lib/explore.cmx: lib/explore.cmi -lib/gmap.cmo: lib/gmap.cmi -lib/gmap.cmx: lib/gmap.cmi lib/gmapl.cmo: lib/gmap.cmi lib/util.cmi lib/gmapl.cmi lib/gmapl.cmx: lib/gmap.cmx lib/util.cmx lib/gmapl.cmi +lib/gmap.cmo: lib/gmap.cmi +lib/gmap.cmx: lib/gmap.cmi lib/gset.cmo: lib/gset.cmi lib/gset.cmx: lib/gset.cmi lib/hashcons.cmo: lib/hashcons.cmi lib/hashcons.cmx: lib/hashcons.cmi lib/options.cmo: lib/util.cmi lib/options.cmi lib/options.cmx: lib/util.cmx lib/options.cmi -lib/pp.cmo: lib/pp_control.cmi lib/pp.cmi -lib/pp.cmx: lib/pp_control.cmx lib/pp.cmi lib/pp_control.cmo: lib/pp_control.cmi lib/pp_control.cmx: lib/pp_control.cmi +lib/pp.cmo: lib/pp_control.cmi lib/pp.cmi +lib/pp.cmx: lib/pp_control.cmx lib/pp.cmi lib/profile.cmo: lib/profile.cmi lib/profile.cmx: lib/profile.cmi -lib/stamps.cmo: lib/stamps.cmi -lib/stamps.cmx: lib/stamps.cmi -lib/system.cmo: config/coq_config.cmi lib/pp.cmi lib/util.cmi lib/system.cmi -lib/system.cmx: config/coq_config.cmx lib/pp.cmx lib/util.cmx lib/system.cmi -lib/tlm.cmo: lib/gmap.cmi lib/gset.cmi lib/tlm.cmi -lib/tlm.cmx: lib/gmap.cmx lib/gset.cmx lib/tlm.cmi -lib/util.cmo: lib/pp.cmi lib/util.cmi -lib/util.cmx: lib/pp.cmx lib/util.cmi library/declare.cmo: kernel/cooking.cmi kernel/declarations.cmi \ kernel/environ.cmi kernel/evd.cmi library/global.cmi library/impargs.cmi \ library/indrec.cmi kernel/inductive.cmi library/lib.cmi \ @@ -499,6 +491,14 @@ library/summary.cmo: lib/dyn.cmi kernel/names.cmi lib/pp.cmi lib/util.cmi \ library/summary.cmi library/summary.cmx: lib/dyn.cmx kernel/names.cmx lib/pp.cmx lib/util.cmx \ library/summary.cmi +lib/stamps.cmo: lib/stamps.cmi +lib/stamps.cmx: lib/stamps.cmi +lib/system.cmo: config/coq_config.cmi lib/pp.cmi lib/util.cmi lib/system.cmi +lib/system.cmx: config/coq_config.cmx lib/pp.cmx lib/util.cmx lib/system.cmi +lib/tlm.cmo: lib/gmap.cmi lib/gset.cmi lib/tlm.cmi +lib/tlm.cmx: lib/gmap.cmx lib/gset.cmx lib/tlm.cmi +lib/util.cmo: lib/pp.cmi lib/util.cmi +lib/util.cmx: lib/pp.cmx lib/util.cmi parsing/ast.cmo: parsing/coqast.cmi lib/dyn.cmi lib/hashcons.cmi \ kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi lib/util.cmi parsing/ast.cmi parsing/ast.cmx: parsing/coqast.cmx lib/dyn.cmx lib/hashcons.cmx \ @@ -549,6 +549,10 @@ parsing/g_cases.cmo: parsing/coqast.cmi parsing/pcoq.cmi parsing/g_cases.cmx: parsing/coqast.cmx parsing/pcoq.cmx parsing/g_constr.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi parsing/g_constr.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx +parsing/g_ltac.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \ + lib/pp.cmi lib/util.cmi +parsing/g_ltac.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \ + lib/pp.cmx lib/util.cmx parsing/g_minicoq.cmo: kernel/environ.cmi parsing/lexer.cmi kernel/names.cmi \ lib/pp.cmi kernel/term.cmi kernel/univ.cmi lib/util.cmi \ parsing/g_minicoq.cmi @@ -970,15 +974,15 @@ tactics/dn.cmx: lib/tlm.cmx tactics/dn.cmi tactics/eauto.cmo: tactics/auto.cmi proofs/clenv.cmi proofs/evar_refiner.cmi \ pretyping/evarutil.cmi kernel/evd.cmi lib/explore.cmi proofs/logic.cmi \ kernel/names.cmi pretyping/pattern.cmi lib/pp.cmi proofs/proof_trees.cmi \ - proofs/proof_type.cmi kernel/reduction.cmi parsing/search.cmi \ - kernel/sign.cmi proofs/tacmach.cmi tactics/tacticals.cmi \ - tactics/tactics.cmi kernel/term.cmi lib/util.cmi + proofs/proof_type.cmi kernel/reduction.cmi kernel/sign.cmi \ + proofs/tacmach.cmi tactics/tacticals.cmi tactics/tactics.cmi \ + kernel/term.cmi lib/util.cmi tactics/eauto.cmx: tactics/auto.cmx proofs/clenv.cmx proofs/evar_refiner.cmx \ pretyping/evarutil.cmx kernel/evd.cmx lib/explore.cmx proofs/logic.cmx \ kernel/names.cmx pretyping/pattern.cmx lib/pp.cmx proofs/proof_trees.cmx \ - proofs/proof_type.cmx kernel/reduction.cmx parsing/search.cmx \ - kernel/sign.cmx proofs/tacmach.cmx tactics/tacticals.cmx \ - tactics/tactics.cmx kernel/term.cmx lib/util.cmx + proofs/proof_type.cmx kernel/reduction.cmx kernel/sign.cmx \ + proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx \ + kernel/term.cmx lib/util.cmx tactics/elim.cmo: proofs/clenv.cmi tactics/hiddentac.cmi \ tactics/hipattern.cmi kernel/inductive.cmi kernel/names.cmi lib/pp.cmi \ proofs/proof_type.cmi kernel/reduction.cmi proofs/tacmach.cmi \ @@ -1123,12 +1127,6 @@ tactics/tactics.cmx: parsing/astterm.cmx proofs/clenv.cmx kernel/closure.cmx \ kernel/reduction.cmx kernel/sign.cmx lib/stamps.cmx proofs/tacinterp.cmx \ proofs/tacmach.cmx pretyping/tacred.cmx tactics/tacticals.cmx \ kernel/term.cmx lib/util.cmx tactics/tactics.cmi -tactics/tauto.cmo: parsing/ast.cmi parsing/coqast.cmi tactics/hipattern.cmi \ - kernel/names.cmi lib/pp.cmi proofs/proof_type.cmi proofs/tacinterp.cmi \ - proofs/tacmach.cmi tactics/tacticals.cmi tactics/tactics.cmi lib/util.cmi -tactics/tauto.cmx: parsing/ast.cmx parsing/coqast.cmx tactics/hipattern.cmx \ - kernel/names.cmx lib/pp.cmx proofs/proof_type.cmx proofs/tacinterp.cmx \ - proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx lib/util.cmx tactics/termdn.cmo: tactics/dn.cmi kernel/names.cmi pretyping/pattern.cmi \ pretyping/rawterm.cmi kernel/term.cmi lib/util.cmi tactics/termdn.cmi tactics/termdn.cmx: tactics/dn.cmx kernel/names.cmx pretyping/pattern.cmx \ @@ -1143,12 +1141,12 @@ tactics/wcclausenv.cmx: proofs/clenv.cmx kernel/environ.cmx \ proofs/logic.cmx kernel/names.cmx lib/pp.cmx proofs/proof_trees.cmx \ kernel/reduction.cmx kernel/sign.cmx proofs/tacmach.cmx kernel/term.cmx \ lib/util.cmx tactics/wcclausenv.cmi -tools/coq_vo2xml.cmo: config/coq_config.cmi toplevel/usage.cmi -tools/coq_vo2xml.cmx: config/coq_config.cmx toplevel/usage.cmx -tools/coqdep.cmo: config/coq_config.cmi tools/coqdep_lexer.cmo -tools/coqdep.cmx: config/coq_config.cmx tools/coqdep_lexer.cmx tools/coqdep_lexer.cmo: config/coq_config.cmi tools/coqdep_lexer.cmx: config/coq_config.cmx +tools/coqdep.cmo: config/coq_config.cmi tools/coqdep_lexer.cmo +tools/coqdep.cmx: config/coq_config.cmx tools/coqdep_lexer.cmx +tools/coq_vo2xml.cmo: config/coq_config.cmi toplevel/usage.cmi +tools/coq_vo2xml.cmx: config/coq_config.cmx toplevel/usage.cmx tools/gallina.cmo: tools/gallina_lexer.cmo tools/gallina.cmx: tools/gallina_lexer.cmx toplevel/class.cmo: pretyping/classops.cmi kernel/declarations.cmi \ @@ -1309,12 +1307,6 @@ toplevel/toplevel.cmx: parsing/ast.cmx toplevel/errors.cmx library/lib.cmx \ toplevel/vernac.cmx toplevel/vernacinterp.cmx toplevel/toplevel.cmi toplevel/usage.cmo: config/coq_config.cmi toplevel/usage.cmi toplevel/usage.cmx: config/coq_config.cmx toplevel/usage.cmi -toplevel/vernac.cmo: parsing/ast.cmi parsing/coqast.cmi library/library.cmi \ - lib/options.cmi parsing/pcoq.cmi lib/pp.cmi library/states.cmi \ - lib/system.cmi lib/util.cmi toplevel/vernacinterp.cmi toplevel/vernac.cmi -toplevel/vernac.cmx: parsing/ast.cmx parsing/coqast.cmx library/library.cmx \ - lib/options.cmx parsing/pcoq.cmx lib/pp.cmx library/states.cmx \ - lib/system.cmx lib/util.cmx toplevel/vernacinterp.cmx toplevel/vernac.cmi toplevel/vernacentries.cmo: parsing/ast.cmi parsing/astterm.cmi \ toplevel/class.cmi pretyping/classops.cmi toplevel/command.cmi \ parsing/coqast.cmi kernel/declarations.cmi library/declare.cmi \ @@ -1357,16 +1349,12 @@ toplevel/vernacinterp.cmx: parsing/ast.cmx parsing/astterm.cmx \ kernel/names.cmx library/nametab.cmx lib/options.cmx lib/pp.cmx \ proofs/proof_type.cmx proofs/tacinterp.cmx lib/util.cmx \ toplevel/vernacinterp.cmi -contrib/correctness/pcic.cmo: parsing/ast.cmi kernel/declarations.cmi \ - library/declare.cmi pretyping/detyping.cmi kernel/names.cmi \ - library/nametab.cmi contrib/correctness/past.cmi \ - contrib/correctness/pmisc.cmi pretyping/rawterm.cmi toplevel/record.cmi \ - kernel/sign.cmi kernel/term.cmi lib/util.cmi contrib/correctness/pcic.cmi -contrib/correctness/pcic.cmx: parsing/ast.cmx kernel/declarations.cmx \ - library/declare.cmx pretyping/detyping.cmx kernel/names.cmx \ - library/nametab.cmx contrib/correctness/past.cmi \ - contrib/correctness/pmisc.cmx pretyping/rawterm.cmx toplevel/record.cmx \ - kernel/sign.cmx kernel/term.cmx lib/util.cmx contrib/correctness/pcic.cmi +toplevel/vernac.cmo: parsing/ast.cmi parsing/coqast.cmi library/library.cmi \ + lib/options.cmi parsing/pcoq.cmi lib/pp.cmi library/states.cmi \ + lib/system.cmi lib/util.cmi toplevel/vernacinterp.cmi toplevel/vernac.cmi +toplevel/vernac.cmx: parsing/ast.cmx parsing/coqast.cmx library/library.cmx \ + lib/options.cmx parsing/pcoq.cmx lib/pp.cmx library/states.cmx \ + lib/system.cmx lib/util.cmx toplevel/vernacinterp.cmx toplevel/vernac.cmi contrib/correctness/pcicenv.cmo: library/global.cmi kernel/names.cmi \ contrib/correctness/past.cmi contrib/correctness/penv.cmi \ contrib/correctness/pmisc.cmi contrib/correctness/pmonad.cmi \ @@ -1379,6 +1367,16 @@ contrib/correctness/pcicenv.cmx: library/global.cmx kernel/names.cmx \ contrib/correctness/prename.cmx contrib/correctness/ptype.cmi \ contrib/correctness/putil.cmx kernel/sign.cmx kernel/term.cmx \ kernel/univ.cmx contrib/correctness/pcicenv.cmi +contrib/correctness/pcic.cmo: parsing/ast.cmi kernel/declarations.cmi \ + library/declare.cmi pretyping/detyping.cmi kernel/names.cmi \ + library/nametab.cmi contrib/correctness/past.cmi \ + contrib/correctness/pmisc.cmi pretyping/rawterm.cmi toplevel/record.cmi \ + kernel/sign.cmi kernel/term.cmi lib/util.cmi contrib/correctness/pcic.cmi +contrib/correctness/pcic.cmx: parsing/ast.cmx kernel/declarations.cmx \ + library/declare.cmx pretyping/detyping.cmx kernel/names.cmx \ + library/nametab.cmx contrib/correctness/past.cmi \ + contrib/correctness/pmisc.cmx pretyping/rawterm.cmx toplevel/record.cmx \ + kernel/sign.cmx kernel/term.cmx lib/util.cmx contrib/correctness/pcic.cmi contrib/correctness/pdb.cmo: library/declare.cmi library/global.cmi \ kernel/names.cmi library/nametab.cmi contrib/correctness/past.cmi \ contrib/correctness/penv.cmi contrib/correctness/perror.cmi \ @@ -1783,6 +1781,14 @@ contrib/interface/pbp.cmx: parsing/coqast.cmx parsing/coqlib.cmx \ proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx \ kernel/term.cmx pretyping/typing.cmx lib/util.cmx \ contrib/interface/pbp.cmi +contrib/interface/showproof_ct.cmo: contrib/interface/ascent.cmi \ + parsing/esyntax.cmi library/global.cmi toplevel/metasyntax.cmi lib/pp.cmi \ + parsing/printer.cmi contrib/interface/translate.cmi \ + contrib/interface/vtp.cmi contrib/interface/xlate.cmi +contrib/interface/showproof_ct.cmx: contrib/interface/ascent.cmi \ + parsing/esyntax.cmx library/global.cmx toplevel/metasyntax.cmx lib/pp.cmx \ + parsing/printer.cmx contrib/interface/translate.cmx \ + contrib/interface/vtp.cmx contrib/interface/xlate.cmx contrib/interface/showproof.cmo: parsing/ast.cmi parsing/astterm.cmi \ proofs/clenv.cmi parsing/coqast.cmi kernel/declarations.cmi \ kernel/environ.cmi kernel/evd.cmi library/global.cmi kernel/inductive.cmi \ @@ -1801,14 +1807,6 @@ contrib/interface/showproof.cmx: parsing/ast.cmx parsing/astterm.cmx \ proofs/tacmach.cmx kernel/term.cmx parsing/termast.cmx \ contrib/interface/translate.cmx pretyping/typing.cmx lib/util.cmx \ toplevel/vernacinterp.cmx contrib/interface/showproof.cmi -contrib/interface/showproof_ct.cmo: contrib/interface/ascent.cmi \ - parsing/esyntax.cmi library/global.cmi toplevel/metasyntax.cmi lib/pp.cmi \ - parsing/printer.cmi contrib/interface/translate.cmi \ - contrib/interface/vtp.cmi contrib/interface/xlate.cmi -contrib/interface/showproof_ct.cmx: contrib/interface/ascent.cmi \ - parsing/esyntax.cmx library/global.cmx toplevel/metasyntax.cmx lib/pp.cmx \ - parsing/printer.cmx contrib/interface/translate.cmx \ - contrib/interface/vtp.cmx contrib/interface/xlate.cmx contrib/interface/translate.cmo: contrib/interface/ascent.cmi parsing/ast.cmi \ parsing/coqast.cmi kernel/environ.cmi pretyping/evarutil.cmi \ kernel/evd.cmi library/libobject.cmi library/library.cmi kernel/names.cmi \ @@ -1882,25 +1880,23 @@ contrib/ring/ring.cmx: parsing/astterm.cmx kernel/closure.cmx \ pretyping/tacred.cmx tactics/tactics.cmx kernel/term.cmx \ pretyping/typing.cmx lib/util.cmx toplevel/vernacinterp.cmx contrib/setoid/setoid_replace.cmo: parsing/astterm.cmi tactics/auto.cmi \ - toplevel/command.cmi kernel/declarations.cmi library/declare.cmi \ - kernel/environ.cmi kernel/evd.cmi library/global.cmi lib/gmap.cmi \ - library/lib.cmi library/libobject.cmi kernel/names.cmi \ - library/nametab.cmi lib/options.cmi proofs/pfedit.cmi lib/pp.cmi \ - parsing/printer.cmi proofs/proof_type.cmi kernel/reduction.cmi \ - library/summary.cmi proofs/tacmach.cmi tactics/tactics.cmi \ - kernel/term.cmi parsing/termast.cmi pretyping/typing.cmi lib/util.cmi \ + toplevel/command.cmi library/declare.cmi kernel/environ.cmi \ + kernel/evd.cmi library/global.cmi lib/gmap.cmi library/lib.cmi \ + library/libobject.cmi kernel/names.cmi library/nametab.cmi \ + lib/options.cmi proofs/pfedit.cmi lib/pp.cmi parsing/printer.cmi \ + proofs/proof_type.cmi kernel/reduction.cmi library/summary.cmi \ + proofs/tacmach.cmi tactics/tactics.cmi kernel/term.cmi \ + parsing/termast.cmi pretyping/typing.cmi lib/util.cmi \ toplevel/vernacentries.cmi toplevel/vernacinterp.cmi contrib/setoid/setoid_replace.cmx: parsing/astterm.cmx tactics/auto.cmx \ - toplevel/command.cmx kernel/declarations.cmx library/declare.cmx \ - kernel/environ.cmx kernel/evd.cmx library/global.cmx lib/gmap.cmx \ - library/lib.cmx library/libobject.cmx kernel/names.cmx \ - library/nametab.cmx lib/options.cmx proofs/pfedit.cmx lib/pp.cmx \ - parsing/printer.cmx proofs/proof_type.cmx kernel/reduction.cmx \ - library/summary.cmx proofs/tacmach.cmx tactics/tactics.cmx \ - kernel/term.cmx parsing/termast.cmx pretyping/typing.cmx lib/util.cmx \ + toplevel/command.cmx library/declare.cmx kernel/environ.cmx \ + kernel/evd.cmx library/global.cmx lib/gmap.cmx library/lib.cmx \ + library/libobject.cmx kernel/names.cmx library/nametab.cmx \ + lib/options.cmx proofs/pfedit.cmx lib/pp.cmx parsing/printer.cmx \ + proofs/proof_type.cmx kernel/reduction.cmx library/summary.cmx \ + proofs/tacmach.cmx tactics/tactics.cmx kernel/term.cmx \ + parsing/termast.cmx pretyping/typing.cmx lib/util.cmx \ toplevel/vernacentries.cmx toplevel/vernacinterp.cmx -contrib/xml/xml.cmo: contrib/xml/xml.cmi -contrib/xml/xml.cmx: contrib/xml/xml.cmi contrib/xml/xmlcommand.cmo: kernel/declarations.cmi library/declare.cmi \ kernel/environ.cmi kernel/evd.cmi library/global.cmi library/lib.cmi \ library/libobject.cmi library/library.cmi kernel/names.cmi \ @@ -1919,9 +1915,11 @@ contrib/xml/xmlentries.cmo: lib/util.cmi toplevel/vernacinterp.cmi \ contrib/xml/xmlcommand.cmi contrib/xml/xmlentries.cmx: lib/util.cmx toplevel/vernacinterp.cmx \ contrib/xml/xmlcommand.cmx -tactics/tauto.cmo: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo +contrib/xml/xml.cmo: contrib/xml/xml.cmi +contrib/xml/xml.cmx: contrib/xml/xml.cmi +tactics/tauto.cmo: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_ltac.cmo parsing/g_constr.cmo contrib/correctness/psyntax.cmo: parsing/grammar.cma -contrib/field/field.cmo: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo +contrib/field/field.cmo: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_ltac.cmo parsing/g_constr.cmo parsing/lexer.cmo: parsing/q_coqast.cmo: parsing/g_prim.cmo: @@ -1933,5 +1931,6 @@ parsing/g_proofs.cmo: parsing/grammar.cma parsing/g_cases.cmo: parsing/grammar.cma parsing/g_constr.cmo: parsing/grammar.cma parsing/g_tactic.cmo: parsing/grammar.cma +parsing/g_ltac.cmo: parsing/grammar.cma parsing/extend.cmo: parsing/grammar.cma toplevel/mltop.cmo: diff --git a/.depend.camlp4 b/.depend.camlp4 index e30a54d29..6612744a1 100644 --- a/.depend.camlp4 +++ b/.depend.camlp4 @@ -1,6 +1,6 @@ tactics/tauto.ml: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo contrib/correctness/psyntax.ml: parsing/grammar.cma -contrib/field/field.ml: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo +contrib/field/field.ml: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_ltac.cmo parsing/g_constr.cmo parsing/lexer.ml: parsing/q_coqast.ml: parsing/g_prim.ml: @@ -12,5 +12,6 @@ parsing/g_proofs.ml: parsing/grammar.cma parsing/g_cases.ml: parsing/grammar.cma parsing/g_constr.ml: parsing/grammar.cma parsing/g_tactic.ml: parsing/grammar.cma +parsing/g_ltac.ml: parsing/grammar.cma parsing/extend.ml: parsing/grammar.cma toplevel/mltop.ml: @@ -96,7 +96,7 @@ PARSING=parsing/lexer.cmo parsing/coqast.cmo parsing/pcoq.cmo parsing/ast.cmo \ parsing/termast.cmo parsing/astterm.cmo parsing/coqlib.cmo \ parsing/g_prim.cmo parsing/g_basevernac.cmo \ parsing/g_vernac.cmo parsing/g_proofs.cmo parsing/g_tactic.cmo \ - parsing/g_constr.cmo parsing/g_cases.cmo \ + parsing/g_ltac.cmo parsing/g_constr.cmo parsing/g_cases.cmo \ parsing/extend.cmo parsing/esyntax.cmo \ parsing/printer.cmo parsing/prettyp.cmo parsing/search.cmo \ parsing/egrammar.cmo \ @@ -165,7 +165,7 @@ PARSERREQUIRES=lib/pp_control.cmo lib/pp.cmo \ parsing/pcoq.cmo parsing/ast.cmo \ parsing/g_prim.cmo parsing/g_basevernac.cmo \ parsing/g_vernac.cmo parsing/g_proofs.cmo parsing/g_tactic.cmo \ - parsing/g_constr.cmo parsing/g_cases.cmo \ + parsing/g_ltac.cmo parsing/g_constr.cmo parsing/g_cases.cmo \ parsing/extend.cmo config/coq_config.cmo\ lib/system.cmo lib/bstack.cmo lib/edit.cmo \ library/nametab.cmo kernel/univ.cmo library/lib.cmo kernel/esubst.cmo \ @@ -695,7 +695,8 @@ clean:: ML4FILES +=parsing/g_basevernac.ml4 parsing/g_minicoq.ml4 \ parsing/g_vernac.ml4 parsing/g_proofs.ml4 parsing/g_cases.ml4 \ - parsing/g_constr.ml4 parsing/g_tactic.ml4 parsing/extend.ml4 + parsing/g_constr.ml4 parsing/g_tactic.ml4 parsing/g_ltac.ml4 \ + parsing/extend.ml4 # beforedepend:: $(GRAMMARCMO) diff --git a/parsing/g_ltac.ml4 b/parsing/g_ltac.ml4 new file mode 100644 index 000000000..cd6947b5b --- /dev/null +++ b/parsing/g_ltac.ml4 @@ -0,0 +1,160 @@ +(***********************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA-Rocquencourt & LRI-CNRS-Orsay *) +(* \VV/ *************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(***********************************************************************) + +(*i camlp4deps: "parsing/grammar.cma" i*) + +(* $Id$ *) + +open Pp +open Ast +open Pcoq +open Tactic +open Util + +(* Tactics grammar rules *) + +(* Tactics grammar rules *) + +GEXTEND Gram + input_fun: + [ [ l = identarg -> l + | "()" -> <:ast< (VOID) >> ] ] + ; + let_clause: + [ [ id = identarg; "="; te=tactic_atom -> <:ast< (LETCLAUSE $id $te) >> + | id = identarg; ":"; c = constrarg; ":="; "Proof" -> + (match c with + | Coqast.Node(_,"COMMAND",[csr]) -> + <:ast< (LETTOPCLAUSE $id (CONSTR $csr)) >> + | _ -> errorlabstrm "Gram.let_clause" [<'sTR "Not a COMMAND">]) + | id = identarg; ":"; c = constrarg; ":="; te = tactic_expr -> + <:ast< (LETCUTCLAUSE $id $c $te) >> + | id = identarg; ":"; c = constrarg -> + (match c with + | Coqast.Node(_,"COMMAND",[csr]) -> + <:ast< (LETTOPCLAUSE $id (CONSTR $csr)) >> + | _ -> errorlabstrm "Gram.let_clause" [<'sTR "Not a COMMAND">]) ] ] + ; + rec_clause: + [ [ name = identarg; it = LIST1 input_fun; "->"; body = tactic_atom -> + <:ast< (RECCLAUSE $name (FUNVAR ($LIST $it)) $body) >> ] ] + ; + match_pattern: + [ [ id = constrarg; "["; pc = constrarg; "]" -> + (match id with + | Coqast.Node(_,"COMMAND", + [Coqast.Node(_,"QUALID",[Coqast.Nvar(_,s)])]) -> + <:ast< (SUBTERM ($VAR $s) $pc) >> + | _ -> + errorlabstrm "Gram.match_pattern" [<'sTR "Not a correct SUBTERM">]) + | "["; pc = constrarg; "]" -> <:ast< (SUBTERM $pc) >> + | pc = constrarg -> <:ast< (TERM $pc) >> ] ] + ; + match_hyps: + [ [ id = identarg; ":"; mp = match_pattern -> + <:ast< (MATCHCONTEXTHYPS $id $mp) >> + | IDENT "_"; ":"; mp = match_pattern -> + <:ast< (MATCHCONTEXTHYPS $mp) >> ] ] + ; + match_context_rule: + [ [ "["; largs = LIST0 match_hyps SEP ";"; "|-"; mp = match_pattern; "]"; + "->"; te = tactic_expr -> + <:ast< (MATCHCONTEXTRULE ($LIST $largs) $mp $te) >> + | IDENT "_"; "->"; te = tactic_expr -> <:ast< (MATCHCONTEXTRULE $te) >> + ] ] + ; + match_context_list: + [ [ mrl = LIST1 match_context_rule SEP "|" -> mrl + | "|"; mrl = LIST1 match_context_rule SEP "|" -> mrl ] ] + ; + match_rule: + [ [ "["; mp = match_pattern; "]"; "->"; te = tactic_expr -> + <:ast<(MATCHRULE $mp $te)>> + | IDENT "_"; "->"; te = tactic_expr -> <:ast< (MATCHRULE $te) >> ] ] + ; + match_list: + [ [ mrl = LIST1 match_rule SEP "|" -> mrl + | "|"; mrl = LIST1 match_rule SEP "|" -> mrl ] ] + ; + tactic_expr: + [ [ ta0 = tactic_expr; ";"; ta1 = tactic_expr -> + <:ast< (TACTICLIST $ta0 $ta1) >> + | ta = tactic_expr; ";"; "["; lta = LIST0 tactic_expr SEP "|"; "]" -> + <:ast< (TACTICLIST $ta (TACLIST ($LIST $lta))) >> + | y = tactic_atom0 -> y ] ] + ; + tactic_atom0: + [ [ la = LIST1 tactic_atom -> + if (List.length la) = 1 then + let el = List.hd la in <:ast< $el >> + else + <:ast< (APP ($LIST $la)) >> ] ] + ; + tactic_atom: + [ [ IDENT "Fun"; it = LIST1 input_fun ; "->"; body = tactic_expr -> + <:ast< (FUN (FUNVAR ($LIST $it)) $body) >> + | IDENT "Rec"; rc = rec_clause -> <:ast< (REC $rc) >> + | IDENT "Rec"; rc = rec_clause; IDENT "In"; body = tactic_expr -> + <:ast< (REC (RECDECL $rc) $body) >> + | IDENT "Rec"; rc = rec_clause; "And"; + rcl = LIST1 rec_clause SEP "And"; IDENT "In"; + body = tactic_expr -> + <:ast< (REC (RECDECL $rc ($LIST $rcl)) $body) >> + | IDENT "Let"; llc = LIST1 let_clause SEP "And"; IDENT "In"; + u = tactic_expr -> <:ast< (LET (LETDECL ($LIST $llc)) $u) >> + | IDENT "Let"; llc = LIST1 let_clause SEP "And" -> + (match llc with + | [Coqast.Node(_,"LETTOPCLAUSE",[id;c])] -> + <:ast< (StartProof "LETTOP" $id $c) >> + | _ -> <:ast< (LETCUT (LETDECL ($LIST $llc))) >>) + | IDENT "Let"; llc = LIST1 let_clause SEP "And"; + tb = Vernac_.theorem_body; "Qed" -> + (match llc with + | [Coqast.Node(_,"LETTOPCLAUSE",[id;c])] -> + <:ast< (TheoremProof "LETTOP" $id $c $tb) >> + | _ -> errorlabstrm "Gram.tactic_atom" [<'sTR "Not a LETTOPCLAUSE">]) + | IDENT "Match"; IDENT "Context"; IDENT "With"; mrl = match_context_list + -> <:ast< (MATCHCONTEXT ($LIST $mrl)) >> + | IDENT "Match"; com = constrarg; IDENT "With"; mrl = match_list -> + <:ast< (MATCH $com ($LIST $mrl)) >> + | "("; te = tactic_expr; ")" -> te + | "("; te = tactic_expr; tel=LIST1 tactic_expr; ")" -> + <:ast< (APP $te ($LIST tel)) >> + | IDENT "First" ; "["; l = LIST0 tactic_expr SEP "|"; "]" -> + <:ast<(FIRST ($LIST $l))>> + | IDENT "Info"; tc = tactic_expr -> <:ast< (INFO $tc) >> + | IDENT "Solve" ; "["; l = LIST0 tactic_expr SEP "|"; "]" -> + <:ast<(TCLSOLVE ($LIST $l))>> + | IDENT "Try"; ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> + <:ast< (TRY (ORELSE $ta0 $ta1)) >> + | IDENT "Try"; ta = tactic_atom -> <:ast< (TRY $ta) >> + | IDENT "Do"; n = pure_numarg; ta = tactic_atom -> <:ast< (DO $n $ta) >> + | IDENT "Repeat"; ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> + <:ast< (REPEAT (ORELSE $ta0 $ta1)) >> + | IDENT "Repeat"; ta = tactic_atom -> <:ast< (REPEAT $ta) >> + | IDENT "Idtac" -> <:ast< (IDTAC) >> + | IDENT "Fail" -> <:ast<(FAIL)>> + | IDENT "Fail"; n = pure_numarg -> <:ast<(FAIL $n)>> + | ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> + <:ast< (ORELSE $ta0 $ta1) >> + | IDENT "Progress"; ta = tactic_atom -> <:ast< (PROGRESS $ta) >> + | st = simple_tactic -> st + | tca = tactic_arg -> tca ] ] + ; + tactic_arg: + [ [ "()" -> <:ast< (VOID) >> + | n = pure_numarg -> n + | id = identarg -> id + | "?" -> <:ast< (COMMAND (ISEVAR)) >> + | "?"; n = Prim.number -> <:ast< (COMMAND (META $n)) >> + | IDENT "Eval"; rtc = Tactic.red_tactic; "in"; c = Constr.constr -> + <:ast< (COMMAND (EVAL $c (REDEXP $rtc))) >> + | IDENT "Inst"; id = identarg; "["; c = Constr.constr; "]" -> + <:ast< (COMMAND (CONTEXT $id $c)) >> + | "'"; c = constrarg -> c ] ]; + END diff --git a/parsing/g_tactic.ml4 b/parsing/g_tactic.ml4 index 42552fbd1..70aaba18d 100644 --- a/parsing/g_tactic.ml4 +++ b/parsing/g_tactic.ml4 @@ -227,146 +227,7 @@ GEXTEND Gram ; END -(* Tactics grammar rules *) - GEXTEND Gram - input_fun: - [ [ l = identarg -> l - | "()" -> <:ast< (VOID) >> ] ] - ; - let_clause: - [ [ id = identarg; "="; te=tactic_atom -> <:ast< (LETCLAUSE $id $te) >> - | id = identarg; ":"; c = constrarg; ":="; "Proof" -> - (match c with - | Coqast.Node(_,"COMMAND",[csr]) -> - <:ast< (LETTOPCLAUSE $id (CONSTR $csr)) >> - | _ -> errorlabstrm "Gram.let_clause" [<'sTR "Not a COMMAND">]) - | id = identarg; ":"; c = constrarg; ":="; te = tactic_expr -> - <:ast< (LETCUTCLAUSE $id $c $te) >> - | id = identarg; ":"; c = constrarg -> - (match c with - | Coqast.Node(_,"COMMAND",[csr]) -> - <:ast< (LETTOPCLAUSE $id (CONSTR $csr)) >> - | _ -> errorlabstrm "Gram.let_clause" [<'sTR "Not a COMMAND">]) ] ] - ; - rec_clause: - [ [ name = identarg; it = LIST1 input_fun; "->"; body = tactic_atom -> - <:ast< (RECCLAUSE $name (FUNVAR ($LIST $it)) $body) >> ] ] - ; - match_pattern: - [ [ id = constrarg; "["; pc = constrarg; "]" -> - (match id with - | Coqast.Node(_,"COMMAND", - [Coqast.Node(_,"QUALID",[Coqast.Nvar(_,s)])]) -> - <:ast< (SUBTERM ($VAR $s) $pc) >> - | _ -> - errorlabstrm "Gram.match_pattern" [<'sTR "Not a correct SUBTERM">]) - | "["; pc = constrarg; "]" -> <:ast< (SUBTERM $pc) >> - | pc = constrarg -> <:ast< (TERM $pc) >> ] ] - ; - match_hyps: - [ [ id = identarg; ":"; mp = match_pattern -> - <:ast< (MATCHCONTEXTHYPS $id $mp) >> - | IDENT "_"; ":"; mp = match_pattern -> - <:ast< (MATCHCONTEXTHYPS $mp) >> ] ] - ; - match_context_rule: - [ [ "["; largs = LIST0 match_hyps SEP ";"; "|-"; mp = match_pattern; "]"; - "->"; te = tactic_expr -> - <:ast< (MATCHCONTEXTRULE ($LIST $largs) $mp $te) >> - | IDENT "_"; "->"; te = tactic_expr -> <:ast< (MATCHCONTEXTRULE $te) >> - ] ] - ; - match_context_list: - [ [ mrl = LIST1 match_context_rule SEP "|" -> mrl - | "|"; mrl = LIST1 match_context_rule SEP "|" -> mrl ] ] - ; - match_rule: - [ [ "["; mp = match_pattern; "]"; "->"; te = tactic_expr -> - <:ast<(MATCHRULE $mp $te)>> - | IDENT "_"; "->"; te = tactic_expr -> <:ast< (MATCHRULE $te) >> ] ] - ; - match_list: - [ [ mrl = LIST1 match_rule SEP "|" -> mrl - | "|"; mrl = LIST1 match_rule SEP "|" -> mrl ] ] - ; - tactic_expr: - [ [ ta0 = tactic_expr; ";"; ta1 = tactic_expr -> - <:ast< (TACTICLIST $ta0 $ta1) >> - | ta = tactic_expr; ";"; "["; lta = LIST0 tactic_expr SEP "|"; "]" -> - <:ast< (TACTICLIST $ta (TACLIST ($LIST $lta))) >> - | y = tactic_atom0 -> y ] ] - ; - tactic_atom0: - [ [ la = LIST1 tactic_atom -> - if (List.length la) = 1 then - let el = List.hd la in <:ast< $el >> - else - <:ast< (APP ($LIST $la)) >> ] ] - ; - tactic_atom: - [ [ IDENT "Fun"; it = LIST1 input_fun ; "->"; body = tactic_expr -> - <:ast< (FUN (FUNVAR ($LIST $it)) $body) >> - | IDENT "Rec"; rc = rec_clause -> <:ast< (REC $rc) >> - | IDENT "Rec"; rc = rec_clause; IDENT "In"; body = tactic_expr -> - <:ast< (REC (RECDECL $rc) $body) >> - | IDENT "Rec"; rc = rec_clause; "And"; - rcl = LIST1 rec_clause SEP "And"; IDENT "In"; - body = tactic_expr -> - <:ast< (REC (RECDECL $rc ($LIST $rcl)) $body) >> - | IDENT "Let"; llc = LIST1 let_clause SEP "And"; IDENT "In"; - u = tactic_expr -> <:ast< (LET (LETDECL ($LIST $llc)) $u) >> - | IDENT "Let"; llc = LIST1 let_clause SEP "And" -> - (match llc with - | [Coqast.Node(_,"LETTOPCLAUSE",[id;c])] -> - <:ast< (StartProof "LETTOP" $id $c) >> - | _ -> <:ast< (LETCUT (LETDECL ($LIST $llc))) >>) - | IDENT "Let"; llc = LIST1 let_clause SEP "And"; - tb = Vernac_.theorem_body; "Qed" -> - (match llc with - | [Coqast.Node(_,"LETTOPCLAUSE",[id;c])] -> - <:ast< (TheoremProof "LETTOP" $id $c $tb) >> - | _ -> errorlabstrm "Gram.tactic_atom" [<'sTR "Not a LETTOPCLAUSE">]) - | IDENT "Match"; IDENT "Context"; IDENT "With"; mrl = match_context_list - -> <:ast< (MATCHCONTEXT ($LIST $mrl)) >> - | IDENT "Match"; com = constrarg; IDENT "With"; mrl = match_list -> - <:ast< (MATCH $com ($LIST $mrl)) >> - | "("; te = tactic_expr; ")" -> te - | "("; te = tactic_expr; tel=LIST1 tactic_expr; ")" -> - <:ast< (APP $te ($LIST tel)) >> - | IDENT "First" ; "["; l = LIST0 tactic_expr SEP "|"; "]" -> - <:ast<(FIRST ($LIST $l))>> - | IDENT "Info"; tc = tactic_expr -> <:ast< (INFO $tc) >> - | IDENT "Solve" ; "["; l = LIST0 tactic_expr SEP "|"; "]" -> - <:ast<(TCLSOLVE ($LIST $l))>> - | IDENT "Try"; ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> - <:ast< (TRY (ORELSE $ta0 $ta1)) >> - | IDENT "Try"; ta = tactic_atom -> <:ast< (TRY $ta) >> - | IDENT "Do"; n = pure_numarg; ta = tactic_atom -> <:ast< (DO $n $ta) >> - | IDENT "Repeat"; ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> - <:ast< (REPEAT (ORELSE $ta0 $ta1)) >> - | IDENT "Repeat"; ta = tactic_atom -> <:ast< (REPEAT $ta) >> - | IDENT "Idtac" -> <:ast< (IDTAC) >> - | IDENT "Fail" -> <:ast<(FAIL)>> - | IDENT "Fail"; n = pure_numarg -> <:ast<(FAIL $n)>> - | ta0 = tactic_atom; "Orelse"; ta1 = tactic_atom -> - <:ast< (ORELSE $ta0 $ta1) >> - | IDENT "Progress"; ta = tactic_atom -> <:ast< (PROGRESS $ta) >> - | st = simple_tactic -> st - | tca = tactic_arg -> tca ] ] - ; - tactic_arg: - [ [ "()" -> <:ast< (VOID) >> - | n = pure_numarg -> n - | id = identarg -> id - | "?" -> <:ast< (COMMAND (ISEVAR)) >> - | "?"; n = Prim.number -> <:ast< (COMMAND (META $n)) >> - | IDENT "Eval"; rtc = Tactic.red_tactic; "in"; c = Constr.constr -> - <:ast< (COMMAND (EVAL $c (REDEXP $rtc))) >> - | IDENT "Inst"; id = identarg; "["; c = Constr.constr; "]" -> - <:ast< (COMMAND (CONTEXT $id $c)) >> - | "'"; c = constrarg -> c ] ] - ; simple_tactic: [ [ IDENT "Fix"; n = pure_numarg -> <:ast< (Fix $n) >> | IDENT "Fix"; id = identarg; n = pure_numarg -> <:ast< (Fix $id $n) >> @@ -407,12 +268,7 @@ GEXTEND Gram | IDENT "Auto"; IDENT "Decomp" -> <:ast< (DAuto) >> | IDENT "Auto"; n = pure_numarg; IDENT "Decomp"; p = pure_numarg -> <:ast< (DAuto $n $p) >> - ] ]; - END - -GEXTEND Gram - simple_tactic: - [ [ IDENT "Intros" -> <:ast< (Intros) >> + | IDENT "Intros" -> <:ast< (Intros) >> | IDENT "Intros"; IDENT "until"; id = identarg -> <:ast< (IntrosUntil $id) >> | IDENT "Intros"; IDENT "until"; n = numarg -> <:ast<(IntrosUntil $n)>> diff --git a/tactics/tauto.ml4 b/tactics/tauto.ml4 index 1788298be..acc978aff 100644 --- a/tactics/tauto.ml4 +++ b/tactics/tauto.ml4 @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (***********************************************************************) -(*i camlp4deps: "parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo" i*) +(*i camlp4deps: "parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_ltac.cmo parsing/g_constr.cmo" i*) (*i $Id$ i*) |