#
# $Id$
#
# IsaMakefile for HOL
#
## targets
default: HOL
images: HOL TLA
test: HOL-Subst HOL-Induct HOL-IMP HOL-Hoare HOL-Lex HOL-Real \
HOL-Auth HOL-UNITY HOL-Modelcheck HOL-Lambda HOL-W0 HOL-MiniML HOL-IOA \
HOL-AxClasses HOL-AxClasses-Group HOL-AxClasses-Lattice \
HOL-AxClasses-Tutorial HOL-Quot HOL-ex TLA-Inc TLA-Buffer TLA-Memory
all: images test
## global settings
SRC = $(ISABELLE_HOME)/src
OUT = $(ISABELLE_OUTPUT)
LOG = $(OUT)/log
## HOL
HOL: Pure $(OUT)/HOL
Pure:
@cd $(SRC)/Pure; $(ISATOOL) make Pure
$(OUT)/HOL: $(OUT)/Pure $(SRC)/Provers/Arith/cancel_sums.ML \
$(SRC)/Provers/Arith/fast_lin_arith.ML \
$(SRC)/Provers/Arith/abel_cancel.ML $(SRC)/Provers/blast.ML \
$(SRC)/Provers/clasimp.ML $(SRC)/Provers/classical.ML \
$(SRC)/Provers/hypsubst.ML $(SRC)/Provers/simplifier.ML \
$(SRC)/Provers/split_paired_all.ML $(SRC)/Provers/splitter.ML \
$(SRC)/Pure/section_utils.ML $(SRC)/TFL/dcterm.sml \
$(SRC)/TFL/post.sml $(SRC)/TFL/rules.new.sml $(SRC)/TFL/rules.sig \
$(SRC)/TFL/sys.sml $(SRC)/TFL/tfl.sig $(SRC)/TFL/tfl.sml \
$(SRC)/TFL/thms.sig $(SRC)/TFL/thms.sml $(SRC)/TFL/thry.sig \
$(SRC)/TFL/thry.sml $(SRC)/TFL/usyntax.sig $(SRC)/TFL/usyntax.sml \
$(SRC)/TFL/utils.sig $(SRC)/TFL/utils.sml Arith.ML Arith.thy \
Datatype.thy Divides.ML Divides.thy Finite.ML Finite.thy Fun.ML \
Fun.thy Gfp.ML Gfp.thy HOL.ML HOL.thy Inductive.thy Integ/Bin.ML \
Integ/Bin.thy Integ/Equiv.ML Integ/Equiv.thy Integ/IntDef.ML \
Integ/IntDef.thy Integ/Int.ML Integ/Int.thy Integ/simproc.ML Lfp.ML \
Lfp.thy List.ML List.thy Main.thy Map.ML Map.thy Nat.ML Nat.thy \
NatDef.ML NatDef.thy Option.ML Option.thy Ord.ML Ord.thy Power.ML \
Power.thy Prod.ML Prod.thy ROOT.ML Recdef.thy Record.thy RelPow.ML \
RelPow.thy Relation.ML Relation.thy Set.ML Set.thy Sexp.ML Sexp.thy \
String.thy Sum.ML Sum.thy Tools/datatype_aux.ML \
Tools/datatype_abs_proofs.ML Tools/datatype_package.ML \
Tools/datatype_prop.ML Tools/datatype_rep_proofs.ML \
Tools/inductive_package.ML Tools/primrec_package.ML \
Tools/record_package.ML Tools/typedef_package.ML Trancl.ML \
Trancl.thy Univ.ML Univ.thy Vimage.ML Vimage.thy WF.ML WF.thy \
WF_Rel.ML WF_Rel.thy arith_data.ML cladata.ML equalities.ML \
equalities.thy hologic.ML mono.ML mono.thy simpdata.ML subset.ML \
subset.thy thy_syntax.ML
@$(ISATOOL) usedir -b $(OUT)/Pure HOL
## HOL-Subst
HOL-Subst: HOL $(LOG)/HOL-Subst.gz
$(LOG)/HOL-Subst.gz: $(OUT)/HOL Subst/AList.ML Subst/AList.thy \
Subst/ROOT.ML Subst/Subst.ML Subst/Subst.thy Subst/UTerm.ML \
Subst/UTerm.thy Subst/Unifier.ML Subst/Unifier.thy Subst/Unify.ML \
Subst/Unify.thy
@$(ISATOOL) usedir $(OUT)/HOL Subst
## HOL-Induct
HOL-Induct: HOL $(LOG)/HOL-Induct.gz
$(LOG)/HOL-Induct.gz: $(OUT)/HOL Induct/Acc.ML Induct/Acc.thy \
Induct/Com.ML Induct/Com.thy Induct/Comb.ML Induct/Comb.thy \
Induct/Exp.ML Induct/Exp.thy Induct/LFilter.ML Induct/LFilter.thy \
Induct/LList.ML Induct/LList.thy Induct/Mutil.ML Induct/Mutil.thy \
Induct/Multiset0.ML Induct/Multiset0.thy \
Induct/Multiset.ML Induct/Multiset.thy \
Induct/Perm.ML Induct/Perm.thy Induct/PropLog.ML Induct/PropLog.thy \
Induct/ROOT.ML Induct/SList.ML Induct/SList.thy Induct/ABexp.ML \
Induct/ABexp.thy Induct/Term.ML Induct/Term.thy
@$(ISATOOL) usedir $(OUT)/HOL Induct
## HOL-IMP
HOL-IMP: HOL $(LOG)/HOL-IMP.gz
$(LOG)/HOL-IMP.gz: $(OUT)/HOL IMP/Com.thy IMP/Denotation.ML \
IMP/Denotation.thy IMP/Expr.ML IMP/Expr.thy IMP/Hoare.ML IMP/Hoare.thy \
IMP/Natural.ML IMP/Natural.thy IMP/ROOT.ML IMP/Transition.ML \
IMP/Transition.thy IMP/VC.ML IMP/VC.thy
@$(ISATOOL) usedir $(OUT)/HOL IMP
## HOL-Hoare
HOL-Hoare: HOL $(LOG)/HOL-Hoare.gz
$(LOG)/HOL-Hoare.gz: $(OUT)/HOL Hoare/Arith2.ML Hoare/Arith2.thy \
Hoare/Examples.ML Hoare/Examples.thy Hoare/Hoare.ML Hoare/Hoare.thy \
Hoare/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL Hoare
## HOL-Lex
HOL-Lex: HOL $(LOG)/HOL-Lex.gz
$(LOG)/HOL-Lex.gz: $(OUT)/HOL \
Lex/AutoChopper.thy Lex/AutoChopper.ML Lex/AutoChopper1.thy \
Lex/AutoMaxChop.thy Lex/AutoMaxChop.ML Lex/AutoProj.thy Lex/AutoProj.ML \
Lex/Automata.thy Lex/Automata.ML Lex/Chopper.thy Lex/DA.thy Lex/DA.ML \
Lex/MaxChop.thy Lex/MaxChop.ML Lex/MaxPrefix.thy Lex/MaxPrefix.ML \
Lex/NA.thy Lex/NA.ML Lex/NAe.thy Lex/NAe.ML Lex/RegExp2NAe.thy \
Lex/RegExp2NAe.ML Lex/RegExp2NA.thy Lex/RegExp2NA.ML \
Lex/Prefix.thy Lex/Prefix.ML Lex/ROOT.ML \
Lex/RegExp.thy Lex/RegSet.thy Lex/RegSet.ML \
Lex/RegSet_of_nat_DA.thy Lex/RegSet_of_nat_DA.ML
@$(ISATOOL) usedir $(OUT)/HOL Lex
## HOL-Real
HOL-Real: HOL $(LOG)/HOL-Real.gz
$(LOG)/HOL-Real.gz: $(OUT)/HOL \
Real/Lubs.ML Real/Lubs.thy Real/PNat.ML Real/PNat.thy \
Real/PRat.ML Real/PRat.thy Real/PReal.ML Real/PReal.thy \
Real/RComplete.ML Real/RComplete.thy Real/Real.ML Real/Real.thy \
Real/RealDef.ML Real/RealDef.thy Real/simproc.ML \
Real/RealAbs.ML Real/RealAbs.thy Real/ROOT.ML \
Real/Hyperreal/Filter.ML Real/Hyperreal/Filter.thy \
Real/Hyperreal/Zorn.ML Real/Hyperreal/Zorn.thy Real/Hyperreal/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL Real
## HOL-Auth
HOL-Auth: HOL $(LOG)/HOL-Auth.gz
$(LOG)/HOL-Auth.gz: $(OUT)/HOL Auth/Event.ML Auth/Event.thy \
Auth/Message.ML Auth/Message.thy Auth/NS_Public.ML Auth/NS_Public.thy \
Auth/NS_Public_Bad.ML Auth/NS_Public_Bad.thy Auth/NS_Shared.ML \
Auth/NS_Shared.thy Auth/OtwayRees.ML Auth/OtwayRees.thy \
Auth/OtwayRees_AN.ML Auth/OtwayRees_AN.thy Auth/OtwayRees_Bad.ML \
Auth/OtwayRees_Bad.thy Auth/Public.ML Auth/Public.thy Auth/ROOT.ML \
Auth/Recur.ML Auth/Recur.thy Auth/Shared.ML Auth/Shared.thy \
Auth/TLS.ML Auth/TLS.thy Auth/WooLam.ML Auth/WooLam.thy \
Auth/Yahalom.ML Auth/Yahalom.thy Auth/Yahalom2.ML Auth/Yahalom2.thy
@$(ISATOOL) usedir $(OUT)/HOL Auth
## HOL-UNITY
HOL-UNITY: HOL $(LOG)/HOL-UNITY.gz
$(LOG)/HOL-UNITY.gz: $(OUT)/HOL UNITY/ROOT.ML\
UNITY/Channel.ML UNITY/Channel.thy UNITY/Common.ML UNITY/Common.thy\
UNITY/Client.ML UNITY/Client.thy UNITY/Comp.ML UNITY/Comp.thy\
UNITY/Deadlock.ML UNITY/Deadlock.thy UNITY/FP.ML UNITY/FP.thy\
UNITY/Union.ML UNITY/Union.thy UNITY/Handshake.ML UNITY/Handshake.thy\
UNITY/LessThan.ML UNITY/LessThan.thy UNITY/Mutex.ML UNITY/Mutex.thy\
UNITY/Network.ML UNITY/Network.thy UNITY/Reach.ML UNITY/Reach.thy\
UNITY/SubstAx.ML UNITY/SubstAx.thy UNITY/Token.ML UNITY/Token.thy\
UNITY/Traces.ML UNITY/Traces.thy UNITY/UNITY.ML UNITY/UNITY.thy\
UNITY/WFair.ML UNITY/WFair.thy UNITY/Lift.ML UNITY/Lift.thy\
UNITY/PPROD.ML UNITY/PPROD.thy UNITY/NSP_Bad.ML UNITY/NSP_Bad.thy
@$(ISATOOL) usedir $(OUT)/HOL UNITY
## HOL-Modelcheck
HOL-Modelcheck: HOL $(LOG)/HOL-Modelcheck.gz
$(LOG)/HOL-Modelcheck.gz: $(OUT)/HOL Modelcheck/CTL.thy \
Modelcheck/Example.ML Modelcheck/Example.thy Modelcheck/MCSyn.ML \
Modelcheck/MCSyn.thy Modelcheck/MuCalculus.ML \
Modelcheck/MuCalculus.thy Modelcheck/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL Modelcheck
## HOL-Lambda
HOL-Lambda: HOL $(LOG)/HOL-Lambda.gz
$(LOG)/HOL-Lambda.gz: $(OUT)/HOL Lambda/Commutation.ML \
Lambda/Commutation.thy Lambda/Eta.ML Lambda/Eta.thy Lambda/InductTermi.ML \
Lambda/InductTermi.thy Lambda/Lambda.ML Lambda/Lambda.thy \
Lambda/ListApplication.ML Lambda/ListApplication.thy Lambda/ListBeta.ML \
Lambda/ListBeta.thy Lambda/ListOrder.ML Lambda/ListOrder.thy \
Lambda/ParRed.ML Lambda/ParRed.thy Lambda/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL Lambda
## HOL-W0
HOL-W0: HOL $(LOG)/HOL-W0.gz
$(LOG)/HOL-W0.gz: $(OUT)/HOL W0/I.ML W0/I.thy W0/Maybe.ML W0/Maybe.thy \
W0/MiniML.ML W0/MiniML.thy W0/ROOT.ML W0/Type.ML W0/Type.thy W0/W.ML \
W0/W.thy
@$(ISATOOL) usedir $(OUT)/HOL W0
## HOL-MiniML
HOL-MiniML: HOL $(LOG)/HOL-MiniML.gz
$(LOG)/HOL-MiniML.gz: $(OUT)/HOL MiniML/Generalize.ML \
MiniML/Generalize.thy MiniML/Instance.ML MiniML/Instance.thy \
MiniML/Maybe.ML MiniML/Maybe.thy MiniML/MiniML.ML MiniML/MiniML.thy \
MiniML/ROOT.ML MiniML/Type.ML MiniML/Type.thy MiniML/W.ML MiniML/W.thy
@$(ISATOOL) usedir $(OUT)/HOL MiniML
## HOL-IOA
HOL-IOA: HOL $(LOG)/HOL-IOA.gz
$(LOG)/HOL-IOA.gz: $(OUT)/HOL IOA/Asig.ML IOA/Asig.thy IOA/IOA.ML \
IOA/IOA.thy IOA/ROOT.ML IOA/Solve.ML IOA/Solve.thy
@$(ISATOOL) usedir $(OUT)/HOL IOA
## HOL-AxClasses
HOL-AxClasses: HOL $(LOG)/HOL-AxClasses.gz
$(LOG)/HOL-AxClasses.gz: $(OUT)/HOL AxClasses/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL AxClasses
## HOL-AxClasses-Group
HOL-AxClasses-Group: HOL-AxClasses $(LOG)/HOL-AxClasses-Group.gz
$(LOG)/HOL-AxClasses-Group.gz: $(OUT)/HOL AxClasses/Group/Group.ML \
AxClasses/Group/Group.thy AxClasses/Group/GroupDefs.ML \
AxClasses/Group/GroupDefs.thy AxClasses/Group/GroupInsts.thy \
AxClasses/Group/Monoid.thy AxClasses/Group/MonoidGroupInsts.thy \
AxClasses/Group/ROOT.ML AxClasses/Group/Sigs.thy
@$(ISATOOL) usedir -s AxClasses-Group $(OUT)/HOL AxClasses/Group
## HOL-AxClasses-Lattice
HOL-AxClasses-Lattice: HOL-AxClasses $(LOG)/HOL-AxClasses-Lattice.gz
$(LOG)/HOL-AxClasses-Lattice.gz: $(OUT)/HOL AxClasses/Lattice/CLattice.ML \
AxClasses/Lattice/CLattice.thy AxClasses/Lattice/LatInsts.ML \
AxClasses/Lattice/LatInsts.thy AxClasses/Lattice/LatMorph.ML \
AxClasses/Lattice/LatMorph.thy AxClasses/Lattice/LatPreInsts.ML \
AxClasses/Lattice/LatPreInsts.thy AxClasses/Lattice/Lattice.ML \
AxClasses/Lattice/Lattice.thy AxClasses/Lattice/OrdDefs.ML \
AxClasses/Lattice/OrdDefs.thy AxClasses/Lattice/OrdInsts.thy \
AxClasses/Lattice/Order.ML AxClasses/Lattice/Order.thy \
AxClasses/Lattice/ROOT.ML
@$(ISATOOL) usedir -s AxClasses-Lattice $(OUT)/HOL AxClasses/Lattice
## HOL-AxClasses-Tutorial
HOL-AxClasses-Tutorial: HOL-AxClasses $(LOG)/HOL-AxClasses-Tutorial.gz
$(LOG)/HOL-AxClasses-Tutorial.gz: $(OUT)/HOL \
AxClasses/Tutorial/BoolGroupInsts.thy AxClasses/Tutorial/Group.ML \
AxClasses/Tutorial/Group.thy AxClasses/Tutorial/Monoid.thy \
AxClasses/Tutorial/MonoidGroupInsts.thy \
AxClasses/Tutorial/ProdGroupInsts.thy AxClasses/Tutorial/Product.thy \
AxClasses/Tutorial/ProductInsts.thy AxClasses/Tutorial/ROOT.ML \
AxClasses/Tutorial/Semigroup.thy AxClasses/Tutorial/Semigroups.thy \
AxClasses/Tutorial/Sigs.thy AxClasses/Tutorial/Xor.ML \
AxClasses/Tutorial/Xor.thy
@$(ISATOOL) usedir -s AxClasses-Tutorial $(OUT)/HOL AxClasses/Tutorial
## HOL-Quot
HOL-Quot: HOL $(LOG)/HOL-Quot.gz
$(LOG)/HOL-Quot.gz: $(OUT)/HOL Quot/FRACT.ML Quot/FRACT.thy \
Quot/HQUOT.ML Quot/HQUOT.thy Quot/NPAIR.ML Quot/NPAIR.thy Quot/PER.ML \
Quot/PER.thy Quot/PER0.ML Quot/PER0.thy Quot/ROOT.ML
@$(ISATOOL) usedir $(OUT)/HOL Quot
## HOL-ex
HOL-ex: HOL $(LOG)/HOL-ex.gz
$(LOG)/HOL-ex.gz: $(OUT)/HOL ex/BT.ML ex/BT.thy ex/Fib.ML ex/Fib.thy \
ex/InSort.ML ex/InSort.thy ex/MT.ML ex/MT.thy ex/NatSum.ML \
ex/NatSum.thy ex/Primes.ML ex/Primes.thy ex/Primrec.ML \
ex/Primrec.thy ex/Puzzle.ML ex/Puzzle.thy ex/Qsort.ML ex/Qsort.thy \
ex/ROOT.ML ex/Recdefs.ML ex/Recdefs.thy ex/cla.ML ex/meson.ML \
ex/mesontest.ML ex/set.ML ex/Group.ML ex/Group.thy ex/IntRing.ML \
ex/IntRing.thy ex/IntRingDefs.ML ex/IntRingDefs.thy ex/Lagrange.ML \
ex/Lagrange.thy ex/Ring.ML ex/Ring.thy ex/StringEx.ML \
ex/StringEx.thy ex/BinEx.ML ex/BinEx.thy ex/MonoidGroup.thy \
ex/PiSets.thy ex/PiSets.ML ex/LocaleGroup.thy ex/LocaleGroup.ML \
ex/Antiquote.thy ex/Antiquote.ML ex/Points.thy ex/Points.ML
@$(ISATOOL) usedir $(OUT)/HOL ex
## TLA
TLA: HOL $(OUT)/TLA
$(OUT)/TLA: $(OUT)/HOL TLA/Action.ML TLA/Action.thy TLA/IntLemmas.ML \
TLA/Intensional.ML TLA/Intensional.thy TLA/ROOT.ML TLA/Stfun.ML \
TLA/Stfun.thy TLA/TLA.ML TLA/TLA.thy TLA/cladata.ML TLA/hypsubst.ML
@cd TLA; $(ISATOOL) usedir -b $(OUT)/HOL TLA
## TLA-Inc
TLA-Inc: TLA $(LOG)/TLA-Inc.gz
$(LOG)/TLA-Inc.gz: $(OUT)/TLA TLA/Inc/Inc.thy TLA/Inc/Inc.ML \
TLA/Inc/Pcount.thy
@cd TLA; $(ISATOOL) usedir $(OUT)/TLA Inc
## TLA-Buffer
TLA-Buffer: TLA $(LOG)/TLA-Buffer.gz
$(LOG)/TLA-Buffer.gz: $(OUT)/TLA TLA/Buffer/Buffer.thy \
TLA/Buffer/Buffer.ML TLA/Buffer/DBuffer.thy TLA/Buffer/DBuffer.ML
@cd TLA; $(ISATOOL) usedir $(OUT)/TLA Buffer
## TLA-Memory
TLA-Memory: TLA $(LOG)/TLA-Memory.gz
$(LOG)/TLA-Memory.gz: $(OUT)/TLA TLA/Memory/MIParameters.thy \
TLA/Memory/MIlive.ML TLA/Memory/MIsafe.ML TLA/Memory/MemClerk.ML \
TLA/Memory/MemClerk.thy TLA/Memory/MemClerkParameters.ML \
TLA/Memory/MemClerkParameters.thy TLA/Memory/Memory.ML \
TLA/Memory/Memory.thy TLA/Memory/MemoryImplementation.ML \
TLA/Memory/MemoryImplementation.thy TLA/Memory/MemoryParameters.ML \
TLA/Memory/MemoryParameters.thy TLA/Memory/ProcedureInterface.ML \
TLA/Memory/ProcedureInterface.thy TLA/Memory/RPC.ML TLA/Memory/RPC.thy \
TLA/Memory/RPCMemoryParams.thy TLA/Memory/RPCParameters.ML \
TLA/Memory/RPCParameters.thy
@cd TLA; $(ISATOOL) usedir $(OUT)/TLA Memory
## clean
clean:
@rm -f $(OUT)/HOL $(LOG)/HOL.gz $(LOG)/HOL-Subst.gz \
$(LOG)/HOL-Induct.gz $(LOG)/HOL-IMP.gz $(LOG)/HOL-Hoare.gz \
$(LOG)/HOL-Lex.gz $(LOG)/HOL-Real.gz $(LOG)/HOL-Auth.gz $(LOG)/HOL-UNITY.gz \
$(LOG)/HOL-Modelcheck.gz $(LOG)/HOL-Lambda.gz $(LOG)/HOL-W0.gz \
$(LOG)/HOL-MiniML.gz $(LOG)/HOL-IOA.gz $(LOG)/HOL-AxClasses.gz \
$(LOG)/HOL-AxClasses-Group.gz $(LOG)/HOL-AxClasses-Lattice.gz \
$(LOG)/HOL-AxClasses-Tutorial.gz $(LOG)/HOL-Quot.gz \
$(LOG)/HOL-ex.gz $(OUT)/TLA $(LOG)/TLA.gz $(LOG)/TLA-Inc.gz \
$(LOG)/TLA-Buffer.gz $(LOG)/TLA-Memory.gz