src/ZF/IsaMakefile
changeset 4518 74c01296e818
parent 4447 b7ee449eb345
child 4878 96578989b0d6
equal deleted inserted replaced
4517:fad9b7479dbe 4518:74c01296e818
     2 # $Id$
     2 # $Id$
     3 #
     3 #
     4 # IsaMakefile for ZF
     4 # IsaMakefile for ZF
     5 #
     5 #
     6 
     6 
     7 #### Base system
     7 ## targets
     8 
     8 
       
     9 default: ZF
       
    10 images: ZF
       
    11 test: ZF-IMP ZF-Coind ZF-AC ZF-Resid ZF-ex
       
    12 all: images test
       
    13 
       
    14 
       
    15 ## global settings
       
    16 
       
    17 SRC = $(ISABELLE_HOME)/src
     9 OUT = $(ISABELLE_OUTPUT)
    18 OUT = $(ISABELLE_OUTPUT)
    10 LOG = $(OUT)/log
    19 LOG = $(OUT)/log
    11 
    20 
    12 NAMES = ZF upair subset pair domrange \
       
    13 	func AC equalities Bool \
       
    14 	Sum QPair mono Fixedpt ind_syntax cartprod add_ind_def \
       
    15 	constructor intr_elim indrule Inductive Perm Rel EquivClass Trancl \
       
    16 	WF Order Ordinal Epsilon Arith Univ \
       
    17 	QUniv Datatype OrderArith OrderType \
       
    18 	Cardinal CardinalArith Cardinal_AC InfDatatype \
       
    19 	Zorn Nat Finite List
       
    20 
    21 
    21 FILES = ROOT.ML thy_syntax.ML ../Pure/section_utils.ML simpdata.ML typechk.ML \
    22 ## ZF
    22 	$(NAMES:%=%.thy) $(NAMES:%=%.ML)
       
    23 
    23 
    24 $(OUT)/ZF: $(OUT)/FOL $(FILES)
    24 ZF: FOL $(OUT)/ZF
       
    25 
       
    26 FOL:
       
    27 	@cd $(SRC)/FOL; $(ISATOOL) make FOL
       
    28 
       
    29 $(OUT)/ZF: $(OUT)/FOL $(SRC)/Pure/section_utils.ML AC.ML AC.thy \
       
    30   Arith.ML Arith.thy Bool.ML Bool.thy Cardinal.ML Cardinal.thy \
       
    31   CardinalArith.ML CardinalArith.thy Cardinal_AC.ML Cardinal_AC.thy \
       
    32   Datatype.ML Datatype.thy Epsilon.ML Epsilon.thy EquivClass.ML \
       
    33   EquivClass.thy Finite.ML Finite.thy Fixedpt.ML Fixedpt.thy \
       
    34   Inductive.ML Inductive.thy InfDatatype.ML InfDatatype.thy List.ML \
       
    35   List.thy Nat.ML Nat.thy Order.ML Order.thy OrderArith.ML \
       
    36   OrderArith.thy OrderType.ML OrderType.thy Ordinal.ML Ordinal.thy \
       
    37   Perm.ML Perm.thy QPair.ML QPair.thy QUniv.ML QUniv.thy ROOT.ML Rel.ML \
       
    38   Rel.thy Sum.ML Sum.thy Trancl.ML Trancl.thy Univ.ML Univ.thy WF.ML \
       
    39   WF.thy ZF.ML ZF.thy Zorn.ML Zorn.thy add_ind_def.ML add_ind_def.thy \
       
    40   cartprod.ML cartprod.thy constructor.ML constructor.thy domrange.ML \
       
    41   domrange.thy equalities.ML equalities.thy func.ML func.thy \
       
    42   ind_syntax.ML ind_syntax.thy indrule.ML indrule.thy intr_elim.ML \
       
    43   intr_elim.thy mono.ML mono.thy pair.ML pair.thy simpdata.ML subset.ML \
       
    44   subset.thy thy_syntax.ML typechk.ML upair.ML upair.thy
    25 	@$(ISATOOL) usedir -b $(OUT)/FOL ZF
    45 	@$(ISATOOL) usedir -b $(OUT)/FOL ZF
    26 
    46 
    27 $(OUT)/FOL:
       
    28 	@cd ../FOL; $(ISATOOL) make
       
    29 
    47 
       
    48 ## ZF-IMP
    30 
    49 
       
    50 ZF-IMP: ZF $(LOG)/ZF-IMP.gz
    31 
    51 
    32 #### Tests and examples
    52 $(LOG)/ZF-IMP.gz: $(OUT)/ZF IMP/Com.ML IMP/Com.thy IMP/Denotation.ML \
    33 
    53   IMP/Denotation.thy IMP/Equiv.ML IMP/Equiv.thy IMP/ROOT.ML
    34 ## IMP-semantics example
       
    35 
       
    36 IMP_NAMES = Com Denotation Equiv
       
    37 IMP_FILES = IMP/ROOT.ML $(IMP_NAMES:%=IMP/%.thy) $(IMP_NAMES:%=IMP/%.ML)
       
    38 
       
    39 $(LOG)/ZF-IMP.gz: $(OUT)/ZF $(IMP_FILES)
       
    40 	@$(ISATOOL) usedir $(OUT)/ZF IMP
    54 	@$(ISATOOL) usedir $(OUT)/ZF IMP
    41 
    55 
    42 
    56 
    43 ## Coinduction example
    57 ## ZF-Coind
    44 
    58 
    45 COIND_NAMES = ECR MT Map Static Types Values
    59 ZF-Coind: ZF $(LOG)/ZF-Coind.gz
    46 
    60 
    47 COIND_FILES = Coind/ROOT.ML Coind/Language.thy Coind/BCR.thy Coind/Dynamic.thy \
    61 $(LOG)/ZF-Coind.gz: $(OUT)/ZF Coind/BCR.thy Coind/Dynamic.thy \
    48 	      $(COIND_NAMES:%=Coind/%.thy) $(COIND_NAMES:%=Coind/%.ML)
    62   Coind/ECR.ML Coind/ECR.thy Coind/Language.thy Coind/MT.ML Coind/MT.thy \
    49 
    63   Coind/Map.ML Coind/Map.thy Coind/ROOT.ML Coind/Static.ML \
    50 $(LOG)/ZF-Coind.gz: $(OUT)/ZF $(COIND_FILES)
    64   Coind/Static.thy Coind/Types.ML Coind/Types.thy Coind/Values.ML \
       
    65   Coind/Values.thy
    51 	@$(ISATOOL) usedir $(OUT)/ZF Coind
    66 	@$(ISATOOL) usedir $(OUT)/ZF Coind
    52 
    67 
    53 
    68 
    54 ## AC examples
    69 ## ZF-AC
    55 
    70 
    56 AC_NAMES = AC_Equiv Cardinal_aux \
    71 ZF-AC: ZF $(LOG)/ZF-AC.gz
    57 	   AC15_WO6 AC16_WO4 AC16_lemmas AC17_AC1 AC18_AC19 AC1_WO2 \
       
    58 	   DC DC_lemmas HH Hartog WO1_AC \
       
    59 	   WO2_AC16 WO6_WO1 WO_AC recfunAC16 rel_is_fun
       
    60 
    72 
    61 AC_FILES = AC/ROOT.ML AC/AC0_AC1.ML AC/AC10_AC15.ML AC/AC1_AC17.ML \
    73 $(LOG)/ZF-AC.gz: $(OUT)/ZF AC/AC0_AC1.ML AC/AC10_AC15.ML \
    62 	   AC/AC2_AC6.ML AC/AC7_AC9.ML \
    74   AC/AC15_WO6.ML AC/AC15_WO6.thy AC/AC16_WO4.ML AC/AC16_WO4.thy \
    63 	   AC/WO1_WO6.ML AC/WO1_WO7.ML AC/WO1_WO8.ML \
    75   AC/AC16_lemmas.ML AC/AC16_lemmas.thy AC/AC17_AC1.ML AC/AC17_AC1.thy \
    64 	   $(AC_NAMES:%=AC/%.thy) $(AC_NAMES:%=AC/%.ML)
    76   AC/AC18_AC19.ML AC/AC18_AC19.thy AC/AC1_AC17.ML AC/AC1_WO2.ML \
    65 
    77   AC/AC1_WO2.thy AC/AC2_AC6.ML AC/AC7_AC9.ML AC/AC_Equiv.ML \
    66 $(LOG)/ZF-AC.gz: $(OUT)/ZF $(AC_FILES)
    78   AC/AC_Equiv.thy AC/Cardinal_aux.ML AC/Cardinal_aux.thy AC/DC.ML \
       
    79   AC/DC.thy AC/DC_lemmas.ML AC/DC_lemmas.thy AC/HH.ML AC/HH.thy \
       
    80   AC/Hartog.ML AC/Hartog.thy AC/ROOT.ML AC/WO1_AC.ML AC/WO1_AC.thy \
       
    81   AC/WO1_WO6.ML AC/WO1_WO7.ML AC/WO1_WO8.ML AC/WO2_AC16.ML \
       
    82   AC/WO2_AC16.thy AC/WO6_WO1.ML AC/WO6_WO1.thy AC/WO_AC.ML AC/WO_AC.thy \
       
    83   AC/recfunAC16.ML AC/recfunAC16.thy AC/rel_is_fun.ML AC/rel_is_fun.thy
    67 	@$(ISATOOL) usedir $(OUT)/ZF AC
    84 	@$(ISATOOL) usedir $(OUT)/ZF AC
    68 
    85 
    69 
    86 
    70 ## Residuals example
    87 ## ZF-Resid
    71 
    88 
    72 RESID_NAMES = Confluence Redex SubUnion Conversion Reduction Substitution \
    89 ZF-Resid: ZF $(LOG)/ZF-Resid.gz
    73 	      Cube Residuals Terms
       
    74 
    90 
    75 RESID_FILES = Resid/ROOT.ML $(RESID_NAMES:%=Resid/%.thy) $(RESID_NAMES:%=Resid/%.ML)
    91 $(LOG)/ZF-Resid.gz: $(OUT)/ZF Resid/Confluence.ML Resid/Confluence.thy \
    76 
    92   Resid/Conversion.ML Resid/Conversion.thy Resid/Cube.ML Resid/Cube.thy \
    77 $(LOG)/ZF-Resid.gz: $(OUT)/ZF $(RESID_FILES)
    93   Resid/ROOT.ML Resid/Redex.ML Resid/Redex.thy Resid/Reduction.ML \
       
    94   Resid/Reduction.thy Resid/Residuals.ML Resid/Residuals.thy \
       
    95   Resid/SubUnion.ML Resid/SubUnion.thy Resid/Substitution.ML \
       
    96   Resid/Substitution.thy Resid/Terms.ML Resid/Terms.thy
    78 	@$(ISATOOL) usedir $(OUT)/ZF Resid
    97 	@$(ISATOOL) usedir $(OUT)/ZF Resid
    79 
    98 
    80 
    99 
    81 ## Miscellaneous examples
   100 ## ZF-ex
    82 
   101 
    83 EX_NAMES = Primes Ramsey Limit Integ twos_compl Bin BT Term TF Ntree Brouwer \
   102 ZF-ex: ZF $(LOG)/ZF-ex.gz
    84 	   Data Enum Rmap Mutil PropLog ListN Acc Comb Primrec LList CoUnit
       
    85 
   103 
    86 EX_FILES = ex/ROOT.ML ex/misc.ML $(EX_NAMES:%=ex/%.thy) $(EX_NAMES:%=ex/%.ML)
   104 $(LOG)/ZF-ex.gz: $(OUT)/ZF ex/Acc.ML ex/Acc.thy ex/BT.ML ex/BT.thy \
    87 
   105   ex/Bin.ML ex/Bin.thy ex/Brouwer.ML ex/Brouwer.thy ex/CoUnit.ML \
    88 $(LOG)/ZF-ex.gz: $(OUT)/ZF $(EX_FILES)
   106   ex/CoUnit.thy ex/Comb.ML ex/Comb.thy ex/Data.ML ex/Data.thy ex/Enum.ML \
       
   107   ex/Enum.thy ex/Integ.ML ex/Integ.thy ex/LList.ML ex/LList.thy \
       
   108   ex/Limit.ML ex/Limit.thy ex/ListN.ML ex/ListN.thy ex/Mutil.ML \
       
   109   ex/Mutil.thy ex/Ntree.ML ex/Ntree.thy ex/Primes.ML ex/Primes.thy \
       
   110   ex/Primrec.ML ex/Primrec.thy ex/PropLog.ML ex/PropLog.thy ex/ROOT.ML \
       
   111   ex/Ramsey.ML ex/Ramsey.thy ex/Rmap.ML ex/Rmap.thy ex/TF.ML ex/TF.thy \
       
   112   ex/Term.ML ex/Term.thy ex/misc.ML ex/twos_compl.ML ex/twos_compl.thy
    89 	@$(ISATOOL) usedir $(OUT)/ZF ex
   113 	@$(ISATOOL) usedir $(OUT)/ZF ex
    90 
   114 
    91 
   115 
    92 ## Full test
   116 ## clean
    93 
       
    94 ALL_TARGETS = $(OUT)/ZF $(LOG)/ZF-IMP.gz $(LOG)/ZF-Coind.gz \
       
    95   $(LOG)/ZF-AC.gz $(LOG)/ZF-Resid.gz $(LOG)/ZF-ex.gz
       
    96 
       
    97 test: $(ALL_TARGETS)
       
    98 
   117 
    99 clean:
   118 clean:
   100 	@rm -f $(ALL_TARGETS)
   119 	@rm -f $(OUT)/ZF $(LOG)/ZF.gz $(LOG)/ZF-IMP.gz \
   101 
   120 	  $(LOG)/ZF-Coind.gz $(LOG)/ZF-AC.gz $(LOG)/ZF-Resid.gz \
   102 
   121 	  $(LOG)/ZF-ex.gz
   103 .PRECIOUS: $(OUT)/FOL $(OUT)/ZF