equal
deleted
inserted
replaced
11 |
11 |
12 named_theorems partial_function_mono "monotonicity rules for partial function definitions" |
12 named_theorems partial_function_mono "monotonicity rules for partial function definitions" |
13 ML_file "Tools/Function/partial_function.ML" |
13 ML_file "Tools/Function/partial_function.ML" |
14 |
14 |
15 lemma (in ccpo) in_chain_finite: |
15 lemma (in ccpo) in_chain_finite: |
16 assumes "Complete_Partial_Order.chain op \<le> A" "finite A" "A \<noteq> {}" |
16 assumes "Complete_Partial_Order.chain (\<le>) A" "finite A" "A \<noteq> {}" |
17 shows "\<Squnion>A \<in> A" |
17 shows "\<Squnion>A \<in> A" |
18 using assms(2,1,3) |
18 using assms(2,1,3) |
19 proof induction |
19 proof induction |
20 case empty thus ?case by simp |
20 case empty thus ?case by simp |
21 next |
21 next |
22 case (insert x A) |
22 case (insert x A) |
23 note chain = \<open>Complete_Partial_Order.chain op \<le> (insert x A)\<close> |
23 note chain = \<open>Complete_Partial_Order.chain (\<le>) (insert x A)\<close> |
24 show ?case |
24 show ?case |
25 proof(cases "A = {}") |
25 proof(cases "A = {}") |
26 case True thus ?thesis by simp |
26 case True thus ?thesis by simp |
27 next |
27 next |
28 case False |
28 case False |
29 from chain have chain': "Complete_Partial_Order.chain op \<le> A" |
29 from chain have chain': "Complete_Partial_Order.chain (\<le>) A" |
30 by(rule chain_subset) blast |
30 by(rule chain_subset) blast |
31 hence "\<Squnion>A \<in> A" using False by(rule insert.IH) |
31 hence "\<Squnion>A \<in> A" using False by(rule insert.IH) |
32 show ?thesis |
32 show ?thesis |
33 proof(cases "x \<le> \<Squnion>A") |
33 proof(cases "x \<le> \<Squnion>A") |
34 case True |
34 case True |
46 qed |
46 qed |
47 qed |
47 qed |
48 qed |
48 qed |
49 |
49 |
50 lemma (in ccpo) admissible_chfin: |
50 lemma (in ccpo) admissible_chfin: |
51 "(\<forall>S. Complete_Partial_Order.chain op \<le> S \<longrightarrow> finite S) |
51 "(\<forall>S. Complete_Partial_Order.chain (\<le>) S \<longrightarrow> finite S) |
52 \<Longrightarrow> ccpo.admissible Sup op \<le> P" |
52 \<Longrightarrow> ccpo.admissible Sup (\<le>) P" |
53 using in_chain_finite by (blast intro: ccpo.admissibleI) |
53 using in_chain_finite by (blast intro: ccpo.admissibleI) |
54 |
54 |
55 subsection \<open>Axiomatic setup\<close> |
55 subsection \<open>Axiomatic setup\<close> |
56 |
56 |
57 text \<open>This techical locale constains the requirements for function |
57 text \<open>This techical locale constains the requirements for function |