equal
deleted
inserted
replaced
41 lemmas mult_left_idem = times.left_idem |
41 lemmas mult_left_idem = times.left_idem |
42 |
42 |
43 end |
43 end |
44 |
44 |
45 |
45 |
|
46 subsection {* Syntactic infimum and supremum operations *} |
|
47 |
|
48 class inf = |
|
49 fixes inf :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<sqinter>" 70) |
|
50 |
|
51 class sup = |
|
52 fixes sup :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<squnion>" 65) |
|
53 |
|
54 |
46 subsection {* Concrete lattices *} |
55 subsection {* Concrete lattices *} |
47 |
56 |
48 notation |
57 notation |
49 less_eq (infix "\<sqsubseteq>" 50) and |
58 less_eq (infix "\<sqsubseteq>" 50) and |
50 less (infix "\<sqsubset>" 50) and |
59 less (infix "\<sqsubset>" 50) |
51 bot ("\<bottom>") and |
|
52 top ("\<top>") |
|
53 |
|
54 class inf = |
|
55 fixes inf :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<sqinter>" 70) |
|
56 |
|
57 class sup = |
|
58 fixes sup :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<squnion>" 65) |
|
59 |
60 |
60 class semilattice_inf = order + inf + |
61 class semilattice_inf = order + inf + |
61 assumes inf_le1 [simp]: "x \<sqinter> y \<sqsubseteq> x" |
62 assumes inf_le1 [simp]: "x \<sqinter> y \<sqsubseteq> x" |
62 and inf_le2 [simp]: "x \<sqinter> y \<sqsubseteq> y" |
63 and inf_le2 [simp]: "x \<sqinter> y \<sqsubseteq> y" |
63 and inf_greatest: "x \<sqsubseteq> y \<Longrightarrow> x \<sqsubseteq> z \<Longrightarrow> x \<sqsubseteq> y \<sqinter> z" |
64 and inf_greatest: "x \<sqsubseteq> y \<Longrightarrow> x \<sqsubseteq> z \<Longrightarrow> x \<sqsubseteq> y \<sqinter> z" |
757 lemma sup2CI: "(\<not> B x y \<Longrightarrow> A x y) \<Longrightarrow> (A \<squnion> B) x y" |
758 lemma sup2CI: "(\<not> B x y \<Longrightarrow> A x y) \<Longrightarrow> (A \<squnion> B) x y" |
758 by (auto simp add: sup_fun_def) |
759 by (auto simp add: sup_fun_def) |
759 |
760 |
760 |
761 |
761 no_notation |
762 no_notation |
762 less_eq (infix "\<sqsubseteq>" 50) and |
763 less_eq (infix "\<sqsubseteq>" 50) and |
763 less (infix "\<sqsubset>" 50) and |
764 less (infix "\<sqsubset>" 50) |
764 inf (infixl "\<sqinter>" 70) and |
765 |
765 sup (infixl "\<squnion>" 65) and |
766 end |
766 top ("\<top>") and |
767 |
767 bot ("\<bottom>") |
|
768 |
|
769 end |
|
770 |
|