diff -r 3a8d722fd3ff -r 16c4ea954511 mono.ML --- a/mono.ML Fri Nov 11 10:35:03 1994 +0100 +++ b/mono.ML Mon Nov 21 17:50:34 1994 +0100 @@ -8,58 +8,58 @@ goal Set.thy "!!A B. A<=B ==> f``A <= f``B"; by (fast_tac set_cs 1); -val image_mono = result(); +qed "image_mono"; goal Set.thy "!!A B. A<=B ==> Pow(A) <= Pow(B)"; by (fast_tac set_cs 1); -val Pow_mono = result(); +qed "Pow_mono"; goal Set.thy "!!A B. A<=B ==> Union(A) <= Union(B)"; by (fast_tac set_cs 1); -val Union_mono = result(); +qed "Union_mono"; goal Set.thy "!!A B. B<=A ==> Inter(A) <= Inter(B)"; by (fast_tac set_cs 1); -val Inter_anti_mono = result(); +qed "Inter_anti_mono"; val prems = goal Set.thy "[| A<=B; !!x. x:A ==> f(x)<=g(x) |] ==> \ \ (UN x:A. f(x)) <= (UN x:B. g(x))"; by (fast_tac (set_cs addIs (prems RL [subsetD])) 1); -val UN_mono = result(); +qed "UN_mono"; val [prem] = goal Set.thy "[| !!x. f(x)<=g(x) |] ==> (UN x. f(x)) <= (UN x. g(x))"; by (fast_tac (set_cs addIs [prem RS subsetD]) 1); -val UN1_mono = result(); +qed "UN1_mono"; val prems = goal Set.thy "[| B<=A; !!x. x:A ==> f(x)<=g(x) |] ==> \ \ (INT x:A. f(x)) <= (INT x:A. g(x))"; by (fast_tac (set_cs addIs (prems RL [subsetD])) 1); -val INT_anti_mono = result(); +qed "INT_anti_mono"; (*The inclusion is POSITIVE! *) val [prem] = goal Set.thy "[| !!x. f(x)<=g(x) |] ==> (INT x. f(x)) <= (INT x. g(x))"; by (fast_tac (set_cs addIs [prem RS subsetD]) 1); -val INT1_mono = result(); +qed "INT1_mono"; goal Set.thy "!!A B. [| A<=C; B<=D |] ==> A Un B <= C Un D"; by (fast_tac set_cs 1); -val Un_mono = result(); +qed "Un_mono"; goal Set.thy "!!A B. [| A<=C; B<=D |] ==> A Int B <= C Int D"; by (fast_tac set_cs 1); -val Int_mono = result(); +qed "Int_mono"; goal Set.thy "!!A::'a set. [| A<=C; D<=B |] ==> A-B <= C-D"; by (fast_tac set_cs 1); -val Diff_mono = result(); +qed "Diff_mono"; goal Set.thy "!!A B. A<=B ==> Compl(B) <= Compl(A)"; by (fast_tac set_cs 1); -val Compl_anti_mono = result(); +qed "Compl_anti_mono"; val prems = goal Prod.thy "[| A<=C; !!x. x:A ==> B<=D |] ==> Sigma(A,%x.B) <= Sigma(C,%x.D)"; @@ -67,7 +67,7 @@ by (fast_tac (set_cs addIs (prems RL [subsetD]) addSIs [SigmaI] addSEs [SigmaE]) 1); -val Sigma_mono = result(); +qed "Sigma_mono"; (** Monotonicity of implications. For inductive definitions **) @@ -76,46 +76,46 @@ by (rtac impI 1); by (etac subsetD 1); by (assume_tac 1); -val in_mono = result(); +qed "in_mono"; goal HOL.thy "!!P1 P2 Q1 Q2. [| P1-->Q1; P2-->Q2 |] ==> (P1&P2) --> (Q1&Q2)"; by (fast_tac HOL_cs 1); -val conj_mono = result(); +qed "conj_mono"; goal HOL.thy "!!P1 P2 Q1 Q2. [| P1-->Q1; P2-->Q2 |] ==> (P1|P2) --> (Q1|Q2)"; by (fast_tac HOL_cs 1); -val disj_mono = result(); +qed "disj_mono"; goal HOL.thy "!!P1 P2 Q1 Q2.[| Q1-->P1; P2-->Q2 |] ==> (P1-->P2)-->(Q1-->Q2)"; by (fast_tac HOL_cs 1); -val imp_mono = result(); +qed "imp_mono"; goal HOL.thy "P-->P"; by (rtac impI 1); by (assume_tac 1); -val imp_refl = result(); +qed "imp_refl"; val [PQimp] = goal HOL.thy "[| !!x. P(x) --> Q(x) |] ==> (EX x.P(x)) --> (EX x.Q(x))"; by (fast_tac (HOL_cs addIs [PQimp RS mp]) 1); -val ex_mono = result(); +qed "ex_mono"; val [PQimp] = goal HOL.thy "[| !!x. P(x) --> Q(x) |] ==> (ALL x.P(x)) --> (ALL x.Q(x))"; by (fast_tac (HOL_cs addIs [PQimp RS mp]) 1); -val all_mono = result(); +qed "all_mono"; val [PQimp] = goal Set.thy "[| !!x. P(x) --> Q(x) |] ==> Collect(P) <= Collect(Q)"; by (fast_tac (set_cs addIs [PQimp RS mp]) 1); -val Collect_mono = result(); +qed "Collect_mono"; (*Used in indrule.ML*) val [subs,PQimp] = goal Set.thy "[| A<=B; !!x. x:A ==> P(x) --> Q(x) \ \ |] ==> A Int Collect(P) <= B Int Collect(Q)"; by (fast_tac (set_cs addIs [subs RS subsetD, PQimp RS mp]) 1); -val Int_Collect_mono = result(); +qed "Int_Collect_mono"; (*Used in intr_elim.ML and in individual datatype definitions*) val basic_monos = [subset_refl, imp_refl, disj_mono, conj_mono,