#
# IsaMakefile for HOL
#

## targets

default: HOL
generate: HOL-Complex-Generate-HOL HOL-Complex-Generate-HOLLight
images: HOL HOL-Algebra HOL-Complex HOL-Complex-Matrix TLA HOL4

#Note: keep targets sorted (except for HOL-Library)
test: \
  HOL-Library \
  HOL-Auth \
  HOL-AxClasses \
  HOL-Bali \
  HOL-Complex-HahnBanach \
  HOL-Complex-Import \
  HOL-Complex-ex \
  HOL-Extraction \
  HOL-Hoare \
  HOL-HoareParallel \
  HOL-IMP \
  HOL-IMPP \
  HOL-IOA \
  HOL-Induct \
  HOL-Isar_examples \
  HOL-Lambda \
  HOL-Lattice \
  HOL-MicroJava \
  HOL-Modelcheck \
  HOL-NanoJava \
  HOL-NumberTheory \
  HOL-Prolog \
  HOL-SET-Protocol \
  HOL-Subst \
      TLA-Buffer \
      TLA-Inc \
      TLA-Memory \
  HOL-UNITY \
  HOL-Unix \
  HOL-W0 \
  HOL-ex
    # ^ this is the sort position

all: test images


## 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/abel_cancel.ML			\
  $(SRC)/Provers/Arith/assoc_fold.ML						\
  $(SRC)/Provers/Arith/cancel_div_mod.ML					\
  $(SRC)/Provers/Arith/cancel_numeral_factor.ML					\
  $(SRC)/Provers/Arith/cancel_numerals.ML					\
  $(SRC)/Provers/Arith/cancel_sums.ML						\
  $(SRC)/Provers/Arith/combine_numerals.ML					\
  $(SRC)/Provers/Arith/extract_common_term.ML					\
  $(SRC)/Provers/Arith/fast_lin_arith.ML $(SRC)/Provers/blast.ML		\
  $(SRC)/Provers/clasimp.ML $(SRC)/Provers/classical.ML				\
  $(SRC)/Provers/eqsubst.ML $(SRC)/Provers/hypsubst.ML				\
  $(SRC)/Provers/induct_method.ML $(SRC)/Provers/make_elim.ML			\
  $(SRC)/Provers/order.ML $(SRC)/Provers/quantifier1.ML				\
  $(SRC)/Provers/quasi.ML $(SRC)/Provers/splitter.ML $(SRC)/Provers/trancl.ML	\
  $(SRC)/TFL/casesplit.ML $(SRC)/TFL/dcterm.ML $(SRC)/TFL/post.ML		\
  $(SRC)/TFL/rules.ML $(SRC)/TFL/tfl.ML $(SRC)/TFL/thms.ML			\
  $(SRC)/TFL/thry.ML $(SRC)/TFL/usyntax.ML $(SRC)/TFL/utils.ML			\
  Binomial.thy Datatype.ML Datatype.thy			\
  Datatype_Universe.thy Divides.thy						\
  Equiv_Relations.thy Extraction.thy Finite_Set.ML Finite_Set.thy		\
  FixedPoint.thy Fun.thy HOL.ML HOL.thy Hilbert_Choice.thy Inductive.thy	\
  Infinite_Set.thy Integ/IntArith.thy Integ/IntDef.thy Integ/IntDiv.thy		\
  Integ/NatBin.thy Integ/NatSimprocs.thy Integ/Numeral.thy			\
  Integ/Parity.thy Integ/Presburger.thy Integ/cooper_dec.ML			\
  Integ/cooper_proof.ML Integ/reflected_presburger.ML				\
  Integ/reflected_cooper.ML Integ/int_arith1.ML Integ/int_factor_simprocs.ML	\
  Integ/nat_simprocs.ML Integ/presburger.ML Integ/qelim.ML LOrder.thy		\
  Lattice_Locales.thy List.ML List.thy Main.ML Main.thy Map.thy			\
  Nat.ML Nat.thy NatArith.thy OrderedGroup.ML OrderedGroup.thy			\
  Orderings.ML Orderings.thy Power.thy PreList.thy Product_Type.thy		\
  ROOT.ML Recdef.thy Reconstruction.thy Record.thy Refute.thy			\
  Relation.ML Relation.thy Relation_Power.thy Ring_and_Field.thy SAT.thy Set.ML		\
  Set.thy SetInterval.thy Sum_Type.thy Tools/ATP/AtpCommunication.ML		\
  Tools/ATP/recon_order_clauses.ML Tools/ATP/recon_parse.ML			\
  Tools/ATP/recon_transfer_proof.ML			\
  Tools/ATP/recon_translate_proof.ML Tools/ATP/res_clasimpset.ML		\
  Tools/ATP/watcher.ML 					\
  Tools/cnf_funcs.ML					\
  Tools/datatype_abs_proofs.ML Tools/datatype_aux.ML				\
  Tools/datatype_codegen.ML Tools/datatype_package.ML				\
  Tools/datatype_prop.ML Tools/datatype_realizer.ML				\
  Tools/datatype_rep_proofs.ML Tools/inductive_codegen.ML			\
  Tools/inductive_package.ML Tools/inductive_realizer.ML Tools/meson.ML		\
  Tools/numeral_syntax.ML Tools/primrec_package.ML Tools/prop_logic.ML		\
  Tools/recdef_package.ML Tools/recfun_codegen.ML				\
  Tools/reconstruction.ML Tools/record_package.ML Tools/refute.ML		\
  Tools/refute_isar.ML Tools/res_atp.ML Tools/res_axioms.ML			\
  Tools/res_clause.ML Tools/res_lib.ML Tools/res_skolem_function.ML		\
  Tools/res_types_sorts.ML Tools/rewrite_hol_proof.ML				\
  Tools/sat_funcs.ML					\
  Tools/sat_solver.ML Tools/specification_package.ML Tools/split_rule.ML	\
  Tools/typedef_package.ML Transitive_Closure.ML Transitive_Closure.thy		\
  Typedef.thy Wellfounded_Recursion.thy Wellfounded_Relations.thy		\
  antisym_setup.ML arith_data.ML blastdata.ML cladata.ML			\
  document/root.tex eqrule_HOL_data.ML hologic.ML simpdata.ML			\
  thy_syntax.ML
	@$(ISATOOL) usedir $(HOL_USEDIR_OPTIONS) -b -g true $(OUT)/Pure HOL


## HOL-Complex-HahnBanach

HOL-Complex-HahnBanach: HOL-Complex $(LOG)/HOL-Complex-HahnBanach.gz

$(LOG)/HOL-Complex-HahnBanach.gz: $(OUT)/HOL-Complex			\
  Real/HahnBanach/Bounds.thy Real/HahnBanach/FunctionNorm.thy		\
  Real/HahnBanach/FunctionOrder.thy Real/HahnBanach/HahnBanach.thy	\
  Real/HahnBanach/HahnBanachExtLemmas.thy				\
  Real/HahnBanach/HahnBanachSupLemmas.thy				\
  Real/HahnBanach/Linearform.thy Real/HahnBanach/NormedSpace.thy	\
  Real/HahnBanach/README.html Real/HahnBanach/ROOT.ML			\
  Real/HahnBanach/Subspace.thy Real/HahnBanach/VectorSpace.thy		\
  Real/HahnBanach/ZornLemma.thy Real/HahnBanach/document/root.bib	\
  Real/HahnBanach/document/root.tex
	@cd Real; $(ISATOOL) usedir -g true $(OUT)/HOL-Complex HahnBanach


## HOL-Complex

HOL-Complex: HOL $(OUT)/HOL-Complex

$(OUT)/HOL-Complex: $(OUT)/HOL Complex/ROOT.ML Library/Zorn.thy			\
  Real/Lubs.thy Real/rat_arith.ML						\
  Real/Rational.thy Real/PReal.thy Real/RComplete.thy				\
  Real/ROOT.ML Real/Real.thy Real/real_arith.ML Real/RealDef.thy		\
  Real/RealPow.thy Real/document/root.tex					\
  Real/Float.thy Real/Float.ML                                                  \
  Hyperreal/StarDef.thy Hyperreal/StarClasses.thy				\
  Hyperreal/EvenOdd.thy Hyperreal/Fact.thy Hyperreal/HLog.thy			\
  Hyperreal/Filter.thy Hyperreal/HSeries.thy Hyperreal/transfer.ML		\
  Hyperreal/HTranscendental.thy Hyperreal/HyperArith.thy			\
  Hyperreal/HyperDef.thy Hyperreal/HyperNat.thy					\
  Hyperreal/HyperPow.thy Hyperreal/Hyperreal.thy				\
  Hyperreal/Integration.thy Hyperreal/Lim.thy Hyperreal/Log.thy			\
  Hyperreal/Ln.thy Hyperreal/MacLaurin.thy Hyperreal/NatStar.thy		\
  Hyperreal/NSA.thy Hyperreal/NthRoot.thy Hyperreal/Poly.thy			\
  Hyperreal/SEQ.thy Hyperreal/Series.thy Hyperreal/Star.thy			\
  Hyperreal/Taylor.thy								\
  Hyperreal/Transcendental.thy Hyperreal/fuf.ML Hyperreal/hypreal_arith.ML	\
  Complex/Complex_Main.thy Complex/CLim.thy Complex/CSeries.thy			\
  Complex/CStar.thy Complex/Complex.thy Complex/ComplexBin.thy			\
  Complex/NSCA.thy Complex/NSComplex.thy Complex/document/root.tex 
	@cd Complex; $(ISATOOL) usedir -b -g true $(OUT)/HOL HOL-Complex


## HOL-Complex-ex

HOL-Complex-ex: HOL-Complex $(LOG)/HOL-Complex-ex.gz

$(LOG)/HOL-Complex-ex.gz: $(OUT)/HOL-Complex Library/Primes.thy \
  Complex/ex/ROOT.ML Complex/ex/document/root.tex \
  Complex/ex/BigO_Complex.thy Complex/ex/BinEx.thy \
  Complex/ex/NSPrimes.thy Complex/ex/Sqrt.thy Complex/ex/Sqrt_Script.thy
	@cd Complex; $(ISATOOL) usedir $(OUT)/HOL-Complex ex


## HOL-Library

HOL-Library: HOL $(LOG)/HOL-Library.gz

$(LOG)/HOL-Library.gz: $(OUT)/HOL Library/Accessible_Part.thy \
  Library/SetsAndFunctions.thy Library/BigO.thy \
  Library/EfficientNat.thy Library/ExecutableSet.thy \
  Library/FuncSet.thy Library/Library.thy \
  Library/List_Prefix.thy Library/Multiset.thy Library/NatPair.thy \
  Library/Permutation.thy Library/Primes.thy Library/Quotient.thy \
  Library/Nat_Infinity.thy Library/Word.thy Library/word_setup.ML \
  Library/README.html Library/Continuity.thy \
  Library/Nested_Environment.thy Library/Zorn.thy\
  Library/Library/ROOT.ML Library/Library/document/root.tex \
  Library/Library/document/root.bib Library/While_Combinator.thy \
  Library/Product_ord.thy Library/Char_ord.thy \
  Library/List_lexord.thy Library/Commutative_Ring.thy Library/comm_ring.ML
	@cd Library; $(ISATOOL) usedir $(OUT)/HOL Library


## HOL-Subst

HOL-Subst: HOL $(LOG)/HOL-Subst.gz

$(LOG)/HOL-Subst.gz: $(OUT)/HOL Subst/AList.thy \
  Subst/ROOT.ML Subst/Subst.thy Subst/UTerm.thy Subst/Unifier.thy \
  Subst/Unify.thy
	@$(ISATOOL) usedir $(OUT)/HOL Subst


## HOL-Induct

HOL-Induct: HOL $(LOG)/HOL-Induct.gz

$(LOG)/HOL-Induct.gz: $(OUT)/HOL \
  Induct/Com.thy Induct/Comb.thy Induct/LFilter.thy \
  Induct/LList.thy Induct/Mutil.thy Induct/Ordinals.thy \
  Induct/PropLog.thy Induct/QuoNestedDataType.thy Induct/QuoDataType.thy\
  Induct/ROOT.ML \
  Induct/Sexp.thy Induct/Sigma_Algebra.thy \
  Induct/SList.thy Induct/ABexp.thy Induct/Term.thy \
  Induct/Tree.thy Induct/document/root.tex
	@$(ISATOOL) usedir $(OUT)/HOL Induct


## HOL-IMP

HOL-IMP: HOL $(LOG)/HOL-IMP.gz

$(LOG)/HOL-IMP.gz: $(OUT)/HOL IMP/Com.thy IMP/Compiler0.thy IMP/Compiler.thy \
  IMP/Denotation.thy IMP/Expr.thy IMP/Hoare.thy \
  IMP/Natural.thy IMP/Examples.thy \
  IMP/Transition.thy IMP/VC.thy IMP/ROOT.ML IMP/document/root.tex \
  IMP/document/root.bib
	@$(ISATOOL) usedir -g true $(OUT)/HOL IMP


## HOL-IMPP

HOL-IMPP: HOL $(LOG)/HOL-IMPP.gz

$(LOG)/HOL-IMPP.gz: $(OUT)/HOL IMPP/ROOT.ML IMPP/Com.thy IMPP/Com.ML \
  IMPP/Natural.thy IMPP/Natural.ML IMPP/Hoare.thy IMPP/Hoare.ML \
  IMPP/Misc.thy IMPP/Misc.ML IMPP/EvenOdd.thy IMPP/EvenOdd.ML
	@$(ISATOOL) usedir $(OUT)/HOL IMPP


## HOL-Complex-Import

IMPORTER_FILES = Import/proof_kernel.ML Import/replay.ML \
  Import/shuffler.ML Import/MakeEqual.thy Import/HOL4Setup.thy \
  Import/HOL4Syntax.thy Import/HOL4Compat.thy Import/import_syntax.ML \
  Import/hol4rews.ML Import/import_package.ML Import/ROOT.ML

IMPORTER_HOLLIGHT_FILES = Import/proof_kernel.ML Import/replay.ML \
  Import/shuffler.ML Import/MakeEqual.thy Import/HOL4Setup.thy \
  Import/HOL4Syntax.thy Import/HOLLightCompat.thy Import/import_syntax.ML \
  Import/hol4rews.ML Import/import_package.ML Import/ROOT.ML

HOL-Complex-Import: HOL-Complex $(LOG)/HOL-Complex-Import.gz

$(LOG)/HOL-Complex-Import.gz: $(OUT)/HOL-Complex $(IMPORTER_FILES)
	@$(ISATOOL) usedir $(OUT)/HOL-Complex Import


## HOL-Complex-Generate-HOL

HOL-Complex-Generate-HOL: HOL-Complex $(LOG)/HOL-Complex-Generate-HOL.gz

$(LOG)/HOL-Complex-Generate-HOL.gz: $(OUT)/HOL-Complex $(IMPORTER_FILES)  \
  Import/Generate-HOL/GenHOL4Base.thy Import/Generate-HOL/GenHOL4Prob.thy \
  Import/Generate-HOL/GenHOL4Real.thy Import/Generate-HOL/GenHOL4Vec.thy  \
  Import/Generate-HOL/GenHOL4Word32.thy Import/Generate-HOL/ROOT.ML
	@cd Import; $(ISATOOL) usedir $(OUT)/HOL-Complex Generate-HOL


## HOL-Complex-Generate-HOLLight

HOL-Complex-Generate-HOLLight: HOL-Complex $(LOG)/HOL-Complex-Generate-HOLLight.gz

$(LOG)/HOL-Complex-Generate-HOLLight.gz: $(OUT)/HOL-Complex $(IMPORTER_HOLLIGHT_FILES)  \
  Import/Generate-HOLLight/GenHOLLight.thy Import/Generate-HOLLight/ROOT.ML
	@cd Import; $(ISATOOL) usedir $(OUT)/HOL-Complex Generate-HOLLight


## HOL-Import-HOL

HOL4: HOL-Complex $(LOG)/HOL4.gz

HOL_IMPORT_FILES = arithmetic.imp bits.imp boolean_sequence.imp bool.imp \
  bword_arith.imp bword_bitop.imp bword_num.imp combin.imp divides.imp \
  hrat.imp hreal.imp ind_type.imp lim.imp list.imp marker.imp nets.imp \
  numeral.imp num.imp one.imp operator.imp option.imp pair.imp poly.imp \
  powser.imp pred_set.imp prime.imp prim_rec.imp prob_algebra.imp \
  prob_canon.imp prob_extra.imp prob.imp prob_indep.imp prob_pseudo.imp \
  prob_uniform.imp realax.imp real.imp relation.imp res_quan.imp rich_list.imp \
  seq.imp state_transformer.imp sum.imp topology.imp transc.imp word32.imp \
  word_base.imp word_bitop.imp word_num.imp

$(LOG)/HOL4.gz: $(OUT)/HOL-Complex $(IMPORTER_FILES) \
  $(HOL_IMPORT_FILES:%=Import/HOL/%) Import/HOL/HOL4Base.thy \
  Import/HOL/HOL4Prob.thy Import/HOL/HOL4Real.thy Import/HOL/HOL4Vec.thy \
  Import/HOL/HOL4Word32.thy Import/HOL/HOL4.thy Import/HOL/ROOT.ML
	@cd Import/HOL; $(ISATOOL) usedir -b $(OUT)/HOL-Complex HOL4

HOLLight: HOL-Complex $(LOG)/HOLLight.gz

$(LOG)/HOLLight.gz: $(OUT)/HOL-Complex $(IMPORTER_HOLLIGHT_FILES) \
  Import/HOLLight/hollight.imp Import/HOLLight/HOLLight.thy \
  Import/HOLLight/ROOT.ML
	@cd Import/HOLLight; $(ISATOOL) usedir -b $(OUT)/HOL-Complex HOLLight


## HOL-NumberTheory

HOL-NumberTheory: HOL $(LOG)/HOL-NumberTheory.gz

$(LOG)/HOL-NumberTheory.gz: $(OUT)/HOL \
  Library/Permutation.thy Library/Primes.thy NumberTheory/Fib.thy \
  NumberTheory/Factorization.thy NumberTheory/BijectionRel.thy \
  NumberTheory/Chinese.thy NumberTheory/EulerFermat.thy \
  NumberTheory/IntFact.thy NumberTheory/IntPrimes.thy \
  NumberTheory/WilsonBij.thy NumberTheory/WilsonRuss.thy \
  NumberTheory/Finite2.thy NumberTheory/Int2.thy NumberTheory/EvenOdd.thy\
  NumberTheory/Residues.thy NumberTheory/Euler.thy NumberTheory/Gauss.thy\
  NumberTheory/Quadratic_Reciprocity.thy\
  NumberTheory/ROOT.ML
	@$(ISATOOL) usedir -g true $(OUT)/HOL NumberTheory


## HOL-Hoare

HOL-Hoare: HOL $(LOG)/HOL-Hoare.gz

$(LOG)/HOL-Hoare.gz: $(OUT)/HOL Hoare/Arith2.ML Hoare/Arith2.thy \
  Hoare/Examples.thy Hoare/hoare.ML Hoare/Hoare.thy \
  Hoare/Heap.thy Hoare/HeapSyntax.thy Hoare/Pointer_Examples.thy \
  Hoare/ROOT.ML Hoare/ExamplesAbort.thy  Hoare/HeapSyntaxAbort.thy \
  Hoare/hoareAbort.ML Hoare/HoareAbort.thy Hoare/SchorrWaite.thy \
  Hoare/Separation.thy Hoare/SepLogHeap.thy
	@$(ISATOOL) usedir $(OUT)/HOL Hoare


## HOL-HoareParallel

HOL-HoareParallel: HOL $(LOG)/HOL-HoareParallel.gz

$(LOG)/HOL-HoareParallel.gz: $(OUT)/HOL HoareParallel/Gar_Coll.thy \
  HoareParallel/Graph.thy HoareParallel/Mul_Gar_Coll.thy	   \
  HoareParallel/OG_Com.thy HoareParallel/OG_Examples.thy	   \
  HoareParallel/OG_Hoare.thy HoareParallel/OG_Syntax.thy	   \
  HoareParallel/OG_Tactics.thy HoareParallel/OG_Tran.thy	   \
  HoareParallel/Quote_Antiquote.thy                                \
  HoareParallel/RG_Com.thy HoareParallel/RG_Examples.thy	   \
  HoareParallel/RG_Hoare.thy HoareParallel/RG_Syntax.thy	   \
  HoareParallel/RG_Tran.thy HoareParallel/ROOT.ML		   \
  HoareParallel/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/HOL HoareParallel


## HOL-Algebra

HOL-Algebra: HOL $(LOG)/HOL-Algebra.gz

$(LOG)/HOL-Algebra.gz: $(OUT)/HOL Algebra/ROOT.ML \
  Library/Primes.thy Library/FuncSet.thy \
  Algebra/Bij.thy \
  Algebra/CRing.thy \
  Algebra/Coset.thy \
  Algebra/Exponent.thy \
  Algebra/FiniteProduct.thy \
  Algebra/Group.thy \
  Algebra/Lattice.thy \
  Algebra/Module.thy \
  Algebra/Sylow.thy \
  Algebra/UnivPoly.thy \
  Algebra/abstract/Abstract.thy \
  Algebra/abstract/Factor.ML Algebra/abstract/Factor.thy \
  Algebra/abstract/Field.thy \
  Algebra/abstract/Ideal.ML Algebra/abstract/Ideal.thy \
  Algebra/abstract/PID.thy \
  Algebra/abstract/Ring.ML Algebra/abstract/Ring.thy \
  Algebra/abstract/RingHomo.ML Algebra/abstract/RingHomo.thy\
  Algebra/abstract/order.ML \
  Algebra/document/root.tex \
  Algebra/poly/LongDiv.ML Algebra/poly/LongDiv.thy \
  Algebra/poly/PolyHomo.ML Algebra/poly/PolyHomo.thy \
  Algebra/poly/Polynomial.thy \
  Algebra/poly/UnivPoly2.ML Algebra/poly/UnivPoly2.thy \
  Algebra/ringsimp.ML
	@cd Algebra; $(ISATOOL) usedir -b -g true $(OUT)/HOL HOL-Algebra

## HOL-Auth

HOL-Auth: HOL $(LOG)/HOL-Auth.gz

$(LOG)/HOL-Auth.gz: $(OUT)/HOL Library/NatPair.thy \
  Auth/CertifiedEmail.thy Auth/Event.thy \
  Auth/Message.thy Auth/NS_Public.thy Auth/NS_Public_Bad.thy \
  Auth/NS_Shared.thy Auth/OtwayRees.thy Auth/OtwayRees_AN.thy \
  Auth/OtwayRees_Bad.thy Auth/Public.thy Auth/ROOT.ML \
  Auth/Recur.thy Auth/Shared.thy \
  Auth/TLS.thy Auth/WooLam.thy Auth/Kerberos_BAN.thy Auth/KerberosIV.thy \
  Auth/Yahalom.thy Auth/Yahalom2.thy Auth/Yahalom_Bad.thy \
  Auth/ZhouGollmann.thy \
  Auth/Guard/Analz.thy Auth/Guard/Extensions.thy Auth/Guard/GuardK.thy \
  Auth/Guard/Guard_Public.thy Auth/Guard/Guard_Shared.thy \
  Auth/Guard/Guard.thy Auth/Guard/List_Msg.thy \
  Auth/Guard/Guard_NS_Public.thy Auth/Guard/Guard_OtwayRees.thy \
  Auth/Guard/P1.thy Auth/Guard/P2.thy \
  Auth/Guard/Proto.thy Auth/Guard/Guard_Yahalom.thy\
  Auth/document/root.tex 
	@$(ISATOOL) usedir -g true $(OUT)/HOL Auth


## HOL-UNITY

HOL-UNITY: HOL $(LOG)/HOL-UNITY.gz

$(LOG)/HOL-UNITY.gz: $(OUT)/HOL Library/Multiset.thy UNITY/ROOT.ML \
  UNITY/UNITY_Main.thy UNITY/UNITY_tactics.ML \
  UNITY/Comp.thy UNITY/Constrains.thy UNITY/Detects.thy UNITY/ELT.thy \
  UNITY/Extend.thy UNITY/FP.thy UNITY/Follows.thy UNITY/Guar.thy\
  UNITY/Lift_prog.thy UNITY/ListOrder.thy UNITY/ProgressSets.thy\
  UNITY/PPROD.thy  UNITY/Project.thy UNITY/Rename.thy UNITY/Transformers.thy\
  UNITY/SubstAx.thy UNITY/UNITY.thy UNITY/Union.thy UNITY/WFair.thy \
  UNITY/Simple/Channel.thy UNITY/Simple/Common.thy  \
  UNITY/Simple/Deadlock.thy UNITY/Simple/Lift.thy UNITY/Simple/Mutex.thy  \
  UNITY/Simple/NSP_Bad.thy UNITY/Simple/Network.thy\
  UNITY/Simple/Reach.thy UNITY/Simple/Reachability.thy UNITY/Simple/Token.thy\
  UNITY/Comp/Alloc.ML UNITY/Comp/Alloc.thy \
  UNITY/Comp/AllocBase.thy UNITY/Comp/AllocImpl.thy UNITY/Comp/Client.thy \
  UNITY/Comp/Counter.thy UNITY/Comp/Counterc.thy UNITY/Comp/Handshake.thy \
  UNITY/Comp/PriorityAux.thy \
  UNITY/Comp/Priority.thy UNITY/Comp/Progress.thy \
  UNITY/Comp/TimerArray.thy\
  UNITY/document/root.tex 
	@$(ISATOOL) usedir -g true $(OUT)/HOL UNITY


## HOL-Unix

HOL-Unix: HOL $(LOG)/HOL-Unix.gz

$(LOG)/HOL-Unix.gz: $(OUT)/HOL Library/Nested_Environment.thy \
  Library/List_Prefix.thy Unix/ROOT.ML Unix/Unix.thy \
  Unix/document/root.bib Unix/document/root.tex
	@$(ISATOOL) usedir $(OUT)/HOL Unix


## HOL-Modelcheck

HOL-Modelcheck: HOL $(LOG)/HOL-Modelcheck.gz

$(LOG)/HOL-Modelcheck.gz: $(OUT)/HOL Modelcheck/CTL.thy \
  Modelcheck/EindhovenExample.thy Modelcheck/EindhovenSyn.ML \
  Modelcheck/EindhovenSyn.thy Modelcheck/MuCalculus.thy \
  Modelcheck/MuckeExample1.thy Modelcheck/MuckeExample2.thy \
  Modelcheck/MuckeSyn.ML Modelcheck/MuckeSyn.thy Modelcheck/ROOT.ML \
  Modelcheck/mucke_oracle.ML
	@$(ISATOOL) usedir $(OUT)/HOL Modelcheck


## HOL-Lambda

HOL-Lambda: HOL $(LOG)/HOL-Lambda.gz

$(LOG)/HOL-Lambda.gz: $(OUT)/HOL Library/Accessible_Part.thy \
  Lambda/Commutation.thy Lambda/Eta.thy Lambda/InductTermi.thy Lambda/Lambda.thy \
  Lambda/ListApplication.thy Lambda/ListBeta.thy Lambda/ListOrder.thy \
  Lambda/ParRed.thy Lambda/StrongNorm.thy Lambda/Type.thy \
  Lambda/WeakNorm.thy Lambda/ROOT.ML \
  Lambda/document/root.bib Lambda/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/HOL Lambda


## HOL-Prolog

HOL-Prolog: HOL $(LOG)/HOL-Prolog.gz

$(LOG)/HOL-Prolog.gz: $(OUT)/HOL Prolog/ROOT.ML Prolog/HOHH.ML Prolog/HOHH.thy \
  Prolog/Test.ML Prolog/Test.thy  \
  Prolog/Func.ML Prolog/Func.thy Prolog/Type.ML Prolog/Type.thy
	@$(ISATOOL) usedir $(OUT)/HOL Prolog


## HOL-W0

HOL-W0: HOL $(LOG)/HOL-W0.gz

$(LOG)/HOL-W0.gz: $(OUT)/HOL W0/ROOT.ML W0/W0.thy W0/document/root.tex
	@$(ISATOOL) usedir $(OUT)/HOL W0


## HOL-MicroJava

HOL-MicroJava: HOL $(LOG)/HOL-MicroJava.gz

$(LOG)/HOL-MicroJava.gz: $(OUT)/HOL Library/ExecutableSet.thy \
  MicroJava/ROOT.ML \
  MicroJava/Comp/AuxLemmas.thy \
  MicroJava/Comp/CorrComp.thy \
  MicroJava/Comp/CorrCompTp.thy \
  MicroJava/Comp/DefsComp.thy \
  MicroJava/Comp/Index.thy \
  MicroJava/Comp/LemmasComp.thy \
  MicroJava/Comp/NatCanonify.thy \
  MicroJava/Comp/TranslComp.thy \
  MicroJava/Comp/TranslCompTp.thy \
  MicroJava/Comp/TypeInf.thy \
  MicroJava/J/Conform.thy MicroJava/J/Eval.thy MicroJava/J/JBasis.thy \
  MicroJava/J/JTypeSafe.thy MicroJava/J/Decl.thy MicroJava/J/State.thy \
  MicroJava/J/Term.thy MicroJava/J/Type.thy MicroJava/J/TypeRel.thy \
  MicroJava/J/WellForm.thy MicroJava/J/Value.thy \
  MicroJava/J/WellType.thy MicroJava/J/Example.thy \
  MicroJava/J/JListExample.thy \
  MicroJava/JVM/JVMExec.thy MicroJava/JVM/JVMInstructions.thy\
  MicroJava/JVM/JVMState.thy MicroJava/JVM/JVMExecInstr.thy\
  MicroJava/JVM/JVMListExample.thy MicroJava/JVM/JVMExceptions.thy \
  MicroJava/BV/BVSpec.thy MicroJava/BV/BVSpecTypeSafe.thy \
  MicroJava/BV/Correct.thy MicroJava/BV/Err.thy MicroJava/BV/JType.thy \
  MicroJava/BV/JVM.thy MicroJava/BV/JVMType.thy MicroJava/BV/Kildall.thy \
  MicroJava/BV/LBVSpec.thy MicroJava/BV/Listn.thy MicroJava/BV/Opt.thy \
  MicroJava/BV/Product.thy MicroJava/BV/Semilat.thy \
  MicroJava/BV/Effect.thy MicroJava/BV/EffectMono.thy \
  MicroJava/BV/Typing_Framework.thy MicroJava/BV/Typing_Framework_err.thy \
  MicroJava/BV/Typing_Framework_JVM.thy MicroJava/BV/BVExample.thy \
  MicroJava/BV/LBVSpec.thy MicroJava/BV/LBVCorrect.thy \
  MicroJava/BV/LBVComplete.thy MicroJava/BV/LBVJVM.thy \
  MicroJava/document/root.bib MicroJava/document/root.tex \
  MicroJava/document/introduction.tex
	@$(ISATOOL) usedir -g true $(OUT)/HOL MicroJava


## HOL-NanoJava

HOL-NanoJava: HOL $(LOG)/HOL-NanoJava.gz

$(LOG)/HOL-NanoJava.gz: $(OUT)/HOL NanoJava/ROOT.ML \
  NanoJava/Term.thy NanoJava/Decl.thy NanoJava/TypeRel.thy NanoJava/State.thy \
  NanoJava/OpSem.thy NanoJava/AxSem.thy NanoJava/AxSem.thy \
  NanoJava/document/root.bib NanoJava/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/HOL NanoJava


## HOL-Bali

HOL-Bali: HOL $(LOG)/HOL-Bali.gz

$(LOG)/HOL-Bali.gz: $(OUT)/HOL Bali/AxCompl.thy Bali/AxExample.thy	\
  Bali/AxSem.thy Bali/AxSound.thy Bali/Basis.thy Bali/Conform.thy	\
  Bali/Decl.thy Bali/DeclConcepts.thy Bali/Eval.thy Bali/Evaln.thy	\
  Bali/Example.thy Bali/Name.thy Bali/ROOT.ML Bali/State.thy		\
  Bali/Table.thy Bali/Term.thy Bali/Trans.thy Bali/Type.thy		\
  Bali/TypeRel.thy Bali/TypeSafe.thy Bali/Value.thy Bali/WellForm.thy	\
  Bali/DefiniteAssignment.thy Bali/DefiniteAssignmentCorrect.thy \
  Bali/WellType.thy Bali/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/HOL Bali


## HOL-Extraction

HOL-Extraction: HOL $(LOG)/HOL-Extraction.gz

$(LOG)/HOL-Extraction.gz: $(OUT)/HOL Library/EfficientNat.thy \
  Extraction/Higman.thy Extraction/ROOT.ML Extraction/Pigeonhole.thy \
  Extraction/QuotRem.thy \
  Extraction/Warshall.thy Extraction/document/root.tex \
  Extraction/document/root.bib
	@$(ISATOOL) usedir $(OUT)/HOL Extraction


## 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/Group.thy \
  AxClasses/Product.thy AxClasses/ROOT.ML AxClasses/Semigroups.thy
	@$(ISATOOL) usedir $(OUT)/HOL AxClasses


## HOL-Lattice

HOL-Lattice: HOL $(LOG)/HOL-Lattice.gz

$(LOG)/HOL-Lattice.gz: $(OUT)/HOL Lattice/Bounds.thy \
  Lattice/CompleteLattice.thy Lattice/Lattice.thy Lattice/Orders.thy \
  Lattice/ROOT.ML Lattice/document/root.tex
	@$(ISATOOL) usedir $(OUT)/HOL Lattice


## HOL-ex

HOL-ex: HOL $(LOG)/HOL-ex.gz

$(LOG)/HOL-ex.gz: $(OUT)/HOL ex/Antiquote.thy ex/BT.thy ex/BinEx.thy	\
  ex/Classical.thy ex/Chinese.thy Library/Commutative_Ring.thy          \
  ex/Commutative_RingEx.thy \
  ex/Commutative_Ring_Complete.thy ex/Hebrew.thy			\
  ex/Higher_Order_Logic.thy ex/Hilbert_Classical.thy ex/InSort.thy	\
  ex/InductiveInvariant.thy ex/InductiveInvariant_examples.thy		\
  ex/Intuitionistic.thy ex/Lagrange.thy ex/Locales.thy ex/MT.ML		\
  ex/MT.thy ex/MergeSort.thy ex/MonoidGroup.thy ex/Multiquote.thy	\
  ex/NatSum.thy ex/PER.thy ex/PresburgerEx.thy ex/Primrec.thy		\
  ex/Puzzle.thy ex/Qsort.thy ex/Quickcheck_Examples.thy ex/ROOT.ML	\
  ex/Recdefs.thy ex/Records.thy ex/Reflected_Presburger.thy		\
  ex/Refute_Examples.thy ex/SAT_Examples.thy ex/SVC_Oracle.ML ex/SVC_Oracle.thy		\
  ex/StringEx.thy ex/Tarski.thy ex/Tuple.thy ex/document/root.bib	\
  ex/document/root.tex ex/mesontest2.ML ex/mesontest2.thy ex/set.thy	\
  ex/svc_funcs.ML ex/svc_test.ML ex/svc_test.thy
	@$(ISATOOL) usedir $(OUT)/HOL ex


## HOL-Isar_examples

HOL-Isar_examples: HOL $(LOG)/HOL-Isar_examples.gz

$(LOG)/HOL-Isar_examples.gz: $(OUT)/HOL Isar_examples/BasicLogic.thy \
  Isar_examples/Cantor.ML Isar_examples/Cantor.thy Isar_examples/Drinker.thy \
  Isar_examples/ExprCompiler.thy Isar_examples/Fibonacci.thy \
  Isar_examples/Group.thy Isar_examples/Hoare.thy Isar_examples/HoareEx.thy \
  Isar_examples/KnasterTarski.thy Isar_examples/MutilatedCheckerboard.thy \
  Isar_examples/NestedDatatype.thy Isar_examples/Peirce.thy \
  Isar_examples/Puzzle.thy Isar_examples/Summation.thy \
  Isar_examples/ROOT.ML Isar_examples/document/proof.sty \
  Isar_examples/document/root.bib Isar_examples/document/root.tex \
  Isar_examples/document/style.tex Hoare/hoare.ML
	@$(ISATOOL) usedir $(OUT)/HOL Isar_examples


## HOL-SET-Protocol

HOL-SET-Protocol: HOL $(LOG)/HOL-SET-Protocol.gz

$(LOG)/HOL-SET-Protocol.gz: $(OUT)/HOL SET-Protocol/ROOT.ML \
  SET-Protocol/MessageSET.thy\
  SET-Protocol/EventSET.thy\
  SET-Protocol/PublicSET.thy\
  SET-Protocol/Cardholder_Registration.thy\
  SET-Protocol/Merchant_Registration.thy\
  SET-Protocol/Purchase.thy\
  SET-Protocol/document/root.tex 
	@$(ISATOOL) usedir -g true $(OUT)/HOL SET-Protocol


## HOL-Complex-Matrix

HOL-Complex-Matrix: HOL-Complex $(OUT)/HOL-Complex-Matrix

$(OUT)/HOL-Complex-Matrix: $(OUT)/HOL-Complex \
  Matrix/MatrixGeneral.thy Matrix/Matrix.thy Matrix/SparseMatrix.thy \
  Matrix/document/root.tex Matrix/ROOT.ML \
  Matrix/cplex/Cplex.thy Matrix/cplex/CplexMatrixConverter.ML \
  Matrix/cplex/Cplex_tools.ML Matrix/cplex/FloatSparseMatrix.thy \
  Matrix/cplex/FloatSparseMatrixBuilder.ML Matrix/cplex/fspmlp.ML \
  Matrix/cplex/MatrixLP.thy Matrix/cplex/MatrixLP.ML
	@cd Matrix; $(ISATOOL) usedir -b -g true $(OUT)/HOL-Complex HOL-Complex-Matrix


## TLA

TLA: HOL $(OUT)/TLA

$(OUT)/TLA: $(OUT)/HOL TLA/Action.ML TLA/Action.thy TLA/Init.ML \
  TLA/Init.thy TLA/Intensional.ML TLA/Intensional.thy \
  TLA/ROOT.ML TLA/Stfun.ML TLA/Stfun.thy TLA/TLA.ML TLA/TLA.thy
	@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
	@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/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 $(OUT)/HOL-Complex $(OUT)/TLA \
		$(LOG)/HOL.gz $(LOG)/TLA.gz \
		$(LOG)/HOL-Isar_examples.gz $(LOG)/HOL-Induct.gz \
		$(LOG)/HOL-ex.gz $(LOG)/HOL-Subst.gz $(LOG)/HOL-IMP.gz \
		$(LOG)/HOL-IMPP.gz $(LOG)/HOL-Hoare.gz \
		$(LOG)/HOL-HoareParallel.gz \
		$(LOG)/HOL-Lex.gz $(LOG)/HOL-Algebra.gz \
		$(LOG)/HOL-Auth.gz $(LOG)/HOL-UNITY.gz \
		$(LOG)/HOL-Modelcheck.gz $(LOG)/HOL-Lambda.gz \
                $(LOG)/HOL-Bali.gz \
		$(LOG)/HOL-MicroJava.gz $(LOG)/HOL-NanoJava.gz \
		$(LOG)/HOL-IOA.gz $(LOG)/HOL-AxClasses \
		$(LOG)/HOL-Lattice $(LOG)/HOL-Complex-Matrix \
		$(LOG)/HOL-Complex.gz \
		$(LOG)/HOL-Complex-ex.gz \
		$(LOG)/HOL-Complex-HahnBanach.gz $(LOG)/HOL-SET-Protocol.gz \
                $(LOG)/TLA-Inc.gz $(LOG)/TLA-Buffer.gz $(LOG)/TLA-Memory.gz \
		$(LOG)/HOL-Library.gz $(LOG)/HOL-Unix.gz 
