# HG changeset patch # User huffman # Date 1128909789 -7200 # Node ID 03133f6606a17666cc7320dc40032d3b15c5a5cb # Parent 703005988cfec8c46e707f97118fb393d8d1c327 cleaned up diff -r 703005988cfe -r 03133f6606a1 src/HOLCF/Pcpo.thy --- a/src/HOLCF/Pcpo.thy Mon Oct 10 04:00:40 2005 +0200 +++ b/src/HOLCF/Pcpo.thy Mon Oct 10 04:03:09 2005 +0200 @@ -1,8 +1,6 @@ (* Title: HOLCF/Pcpo.thy ID: $Id$ Author: Franz Regensburger - -Introduction of the classes cpo and pcpo. *) header {* Classes cpo and pcpo *} @@ -54,11 +52,11 @@ apply (rule is_lub_thelub) apply assumption apply (rule ub_rangeI) -apply (rule trans_less) -apply (rule_tac [2] is_ub_thelub) -apply (erule_tac [2] chain_shift) +apply (rule_tac y="Y (i + j)" in trans_less) apply (erule chain_mono3) apply (rule le_add1) +apply (rule is_ub_thelub) +apply (erule chain_shift) done lemma maxinch_is_thelub: @@ -94,22 +92,13 @@ text {* more results about mono and = of lubs of chains *} lemma lub_mono2: - "\\j::nat. \i>j. X i = Y i; chain (X::nat=>'a::cpo); chain Y\ + "\\j. \i>j. X i = Y i; chain (X::nat \ 'a::cpo); chain Y\ \ (\i. X i) \ (\i. Y i)" apply (erule exE) -apply (rule is_lub_thelub) -apply assumption -apply (rule ub_rangeI) -apply (case_tac "j < i") -apply (rule_tac s="Y i" and t="X i" in subst) +apply (subgoal_tac "(\i. X (i + Suc j)) \ (\i. Y (i + Suc j))") +apply (thin_tac "\i>j. X i = Y i") +apply (simp only: lub_range_shift) apply simp -apply (erule is_ub_thelub) -apply (rule_tac y = "X (Suc j)" in trans_less) -apply (erule chain_mono) -apply (erule not_less_eq [THEN iffD1]) -apply (rule_tac s="Y (Suc j)" and t="X (Suc j)" in subst) -apply simp -apply (erule is_ub_thelub) done lemma lub_equal2: @@ -120,8 +109,7 @@ lemma lub_mono3: "\chain (Y::nat \ 'a::cpo); chain X; \i. \j. Y i \ X j\ \ (\i. Y i) \ (\i. X i)" -apply (rule is_lub_thelub) -apply assumption +apply (erule is_lub_thelub) apply (rule ub_rangeI) apply (erule allE) apply (erule exE) @@ -185,7 +173,7 @@ constdefs UU :: "'a::pcpo" - "UU \ THE x. ALL y. x \ y" + "UU \ THE x. \y. x \ y" syntax (xsymbols) UU :: "'a::pcpo" ("\") @@ -225,13 +213,7 @@ text {* useful lemmas about @{term \} *} lemma eq_UU_iff: "(x = \) = (x \ \)" -apply (rule iffI) -apply (erule ssubst) -apply (rule refl_less) -apply (rule antisym_less) -apply assumption -apply (rule minimal) -done +by (simp add: po_eq_conv) lemma UU_I: "x \ \ \ x = \" by (subst eq_UU_iff) @@ -296,9 +278,7 @@ apply (erule exE) apply (rule_tac x="i" in exI) apply clarify -apply (erule le_imp_less_or_eq [THEN disjE]) -apply safe -apply (blast dest: chain_mono ax_flat [rule_format]) +apply (blast dest: chain_mono3 ax_flat [rule_format]) done instance flat < chfin