#
# $Id: IsaMakefile,v 1.94 2005/03/28 14:19:56 paulson Exp $
#
# IsaMakefile for ZF
#

## targets

default: ZF
images: ZF

#Note: keep targets sorted
test: ZF-AC ZF-Coind ZF-Constructible ZF-IMP ZF-Induct ZF-Resid ZF-UNITY ZF-ex
all: images test


## global settings

SRC = $(ISABELLE_HOME)/src
OUT = $(ISABELLE_OUTPUT)
LOG = $(OUT)/log


## ZF

ZF: FOL $(OUT)/ZF

FOL:
	@cd $(SRC)/FOL; $(ISATOOL) make FOL

$(OUT)/ZF: $(OUT)/FOL AC.thy Arith.thy \
  ArithSimp.thy Bool.thy Cardinal.thy		\
  CardinalArith.thy Cardinal_AC.thy \
  Datatype.ML Datatype.thy Epsilon.thy Finite.thy	\
  Fixedpt.thy Inductive.ML Inductive.thy 	\
  InfDatatype.thy Integ/Bin.thy \
  Integ/EquivClass.thy Integ/Int.thy Integ/IntArith.thy	\
  Integ/IntDiv.thy Integ/int_arith.ML			\
  List.thy Main.ML Main.thy	\
  Main_ZFC.ML Main_ZFC.thy Nat.thy Order.thy OrderArith.thy	\
  OrderType.thy Ordinal.thy OrdQuant.thy Perm.thy	\
  QPair.thy QUniv.thy ROOT.ML	\
  Sum.thy Tools/cartprod.ML Tools/datatype_package.ML			\
  Tools/ind_cases.ML Tools/induct_tacs.ML Tools/inductive_package.ML	\
  Tools/numeral_syntax.ML Tools/primrec_package.ML Tools/typechk.ML	\
  Trancl.thy Univ.thy \
  WF.thy ZF.thy Zorn.thy arith_data.ML equalities.thy func.thy	\
  ind_syntax.ML pair.thy simpdata.ML		\
  thy_syntax.ML upair.thy
	@$(ISATOOL) usedir -b -r $(OUT)/FOL ZF


## ZF-AC

ZF-AC: ZF $(LOG)/ZF-AC.gz

$(LOG)/ZF-AC.gz: $(OUT)/ZF \
  AC/ROOT.ML  AC/AC15_WO6.thy AC/AC16_WO4.thy \
  AC/AC16_lemmas.thy AC/AC17_AC1.thy AC/AC18_AC19.thy AC/AC7_AC9.thy \
  AC/AC_Equiv.thy AC/Cardinal_aux.thy \
  AC/DC.thy AC/HH.thy AC/Hartog.thy AC/WO1_AC.thy AC/WO1_WO7.thy \
  AC/WO2_AC16.thy AC/WO6_WO1.thy AC/document/root.bib AC/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/ZF AC


## ZF-Coind

ZF-Coind: ZF $(LOG)/ZF-Coind.gz

$(LOG)/ZF-Coind.gz: $(OUT)/ZF Coind/Dynamic.thy \
  Coind/ECR.thy Coind/Language.thy Coind/Map.thy Coind/ROOT.ML \
  Coind/Static.thy Coind/Types.thy Coind/Values.thy
	@$(ISATOOL) usedir $(OUT)/ZF Coind


## ZF-Constructible

ZF-Constructible: ZF $(LOG)/ZF-Constructible.gz

$(LOG)/ZF-Constructible.gz: $(OUT)/ZF  Constructible/ROOT.ML \
  Constructible/Datatype_absolute.thy Constructible/DPow_absolute.thy\
  Constructible/Formula.thy Constructible/Internalize.thy \
  Constructible/AC_in_L.thy Constructible/Relative.thy \
  Constructible/L_axioms.thy    Constructible/Wellorderings.thy \
  Constructible/MetaExists.thy  Constructible/Normal.thy \
  Constructible/Rank.thy Constructible/Rank_Separation.thy \
  Constructible/Rec_Separation.thy Constructible/Separation.thy \
  Constructible/Satisfies_absolute.thy Constructible/WF_absolute.thy \
  Constructible/Reflection.thy  Constructible/WFrec.thy \
  Constructible/document/root.bib Constructible/document/root.tex
	@$(ISATOOL) usedir -g true $(OUT)/ZF Constructible


## ZF-IMP

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

$(LOG)/ZF-IMP.gz: $(OUT)/ZF IMP/Com.thy IMP/Denotation.thy IMP/Equiv.thy \
  IMP/ROOT.ML IMP/document/root.bib IMP/document/root.tex
	@$(ISATOOL) usedir $(OUT)/ZF IMP


## ZF-Resid

ZF-Resid: ZF $(LOG)/ZF-Resid.gz

$(LOG)/ZF-Resid.gz: $(OUT)/ZF Resid/ROOT.ML \
  Resid/Confluence.thy  Resid/Redex.thy \
  Resid/Reduction.thy Resid/Residuals.thy Resid/Substitution.thy 
	@$(ISATOOL) usedir $(OUT)/ZF Resid


## ZF-UNITY

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

$(LOG)/ZF-UNITY.gz: $(OUT)/ZF UNITY/ROOT.ML \
  UNITY/Comp.thy UNITY/Constrains.thy UNITY/FP.thy\
  UNITY/GenPrefix.thy UNITY/Guar.thy UNITY/Mutex.thy UNITY/State.thy \
  UNITY/SubstAx.thy UNITY/UNITY.thy UNITY/Union.thy \
  UNITY/AllocBase.thy UNITY/AllocImpl.thy\
  UNITY/ClientImpl.thy UNITY/Distributor.thy\
  UNITY/Follows.thy UNITY/Increasing.thy UNITY/Merge.thy\
  UNITY/Monotonicity.thy UNITY/MultisetSum.thy UNITY/WFair.thy
	@$(ISATOOL) usedir $(OUT)/ZF UNITY


## ZF-Induct

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

$(LOG)/ZF-Induct.gz: $(OUT)/ZF  Induct/ROOT.ML Induct/Acc.thy \
  Induct/Binary_Trees.thy Induct/Brouwer.thy Induct/Comb.thy \
  Induct/Datatypes.thy Induct/FoldSet.thy \
  Induct/ListN.thy Induct/Multiset.thy Induct/Mutil.thy \
  Induct/Ntree.thy Induct/Primrec.thy Induct/PropLog.thy Induct/Rmap.thy \
  Induct/Term.thy Induct/Tree_Forest.thy Induct/document/root.tex
	@$(ISATOOL) usedir $(OUT)/ZF Induct


## ZF-ex

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

$(LOG)/ZF-ex.gz: $(OUT)/ZF ex/ROOT.ML \
  ex/BinEx.thy ex/CoUnit.thy ex/Commutation.thy ex/Group.thy\
  ex/Limit.thy ex/LList.thy ex/Primes.thy \
  ex/NatSum.thy ex/Ramsey.thy ex/Ring.thy ex/misc.thy
	@$(ISATOOL) usedir $(OUT)/ZF ex


## clean

clean:
	@rm -f $(OUT)/ZF $(LOG)/ZF.gz $(LOG)/ZF-AC.gz $(LOG)/ZF-Coind.gz \
	  $(LOG)/ZF-Constructible.gz $(LOG)/ZF-ex.gz \
          $(LOG)/ZF-IMP.gz $(LOG)/ZF-Resid.gz \
	  $(LOG)/ZF-UNITY.gz
