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 |
|