src/HOL/Algebra/Lattice.thy
changeset 44890 22f665a2e91c
parent 44655 fe0365331566
child 46008 c296c75f4cf4
equal deleted inserted replaced
44889:340df9f3491f 44890:22f665a2e91c
   642   fix s
   642   fix s
   643   assume sup: "least L s (Upper L {x, y, z})"
   643   assume sup: "least L s (Upper L {x, y, z})"
   644   show "x \<squnion> (y \<squnion> z) .= s"
   644   show "x \<squnion> (y \<squnion> z) .= s"
   645   proof (rule weak_le_antisym)
   645   proof (rule weak_le_antisym)
   646     from sup L show "x \<squnion> (y \<squnion> z) \<sqsubseteq> s"
   646     from sup L show "x \<squnion> (y \<squnion> z) \<sqsubseteq> s"
   647       by (fastsimp intro!: join_le elim: least_Upper_above)
   647       by (fastforce intro!: join_le elim: least_Upper_above)
   648   next
   648   next
   649     from sup L show "s \<sqsubseteq> x \<squnion> (y \<squnion> z)"
   649     from sup L show "s \<sqsubseteq> x \<squnion> (y \<squnion> z)"
   650     by (erule_tac least_le)
   650     by (erule_tac least_le)
   651       (blast intro!: Upper_memI intro: le_trans join_left join_right join_closed)
   651       (blast intro!: Upper_memI intro: le_trans join_left join_right join_closed)
   652   qed (simp_all add: L least_closed [OF sup])
   652   qed (simp_all add: L least_closed [OF sup])
   883   fix i
   883   fix i
   884   assume inf: "greatest L i (Lower L {x, y, z})"
   884   assume inf: "greatest L i (Lower L {x, y, z})"
   885   show "x \<sqinter> (y \<sqinter> z) .= i"
   885   show "x \<sqinter> (y \<sqinter> z) .= i"
   886   proof (rule weak_le_antisym)
   886   proof (rule weak_le_antisym)
   887     from inf L show "i \<sqsubseteq> x \<sqinter> (y \<sqinter> z)"
   887     from inf L show "i \<sqsubseteq> x \<sqinter> (y \<sqinter> z)"
   888       by (fastsimp intro!: meet_le elim: greatest_Lower_below)
   888       by (fastforce intro!: meet_le elim: greatest_Lower_below)
   889   next
   889   next
   890     from inf L show "x \<sqinter> (y \<sqinter> z) \<sqsubseteq> i"
   890     from inf L show "x \<sqinter> (y \<sqinter> z) \<sqsubseteq> i"
   891     by (erule_tac greatest_le)
   891     by (erule_tac greatest_le)
   892       (blast intro!: Lower_memI intro: le_trans meet_left meet_right meet_closed)
   892       (blast intro!: Lower_memI intro: le_trans meet_left meet_right meet_closed)
   893   qed (simp_all add: L greatest_closed [OF inf])
   893   qed (simp_all add: L greatest_closed [OF inf])
  1287   fix B
  1287   fix B
  1288   assume B: "B \<subseteq> carrier ?L"
  1288   assume B: "B \<subseteq> carrier ?L"
  1289   show "EX s. least ?L s (Upper ?L B)"
  1289   show "EX s. least ?L s (Upper ?L B)"
  1290   proof
  1290   proof
  1291     from B show "least ?L (\<Union> B) (Upper ?L B)"
  1291     from B show "least ?L (\<Union> B) (Upper ?L B)"
  1292       by (fastsimp intro!: least_UpperI simp: Upper_def)
  1292       by (fastforce intro!: least_UpperI simp: Upper_def)
  1293   qed
  1293   qed
  1294 next
  1294 next
  1295   fix B
  1295   fix B
  1296   assume B: "B \<subseteq> carrier ?L"
  1296   assume B: "B \<subseteq> carrier ?L"
  1297   show "EX i. greatest ?L i (Lower ?L B)"
  1297   show "EX i. greatest ?L i (Lower ?L B)"
  1298   proof
  1298   proof
  1299     from B show "greatest ?L (\<Inter> B \<inter> A) (Lower ?L B)"
  1299     from B show "greatest ?L (\<Inter> B \<inter> A) (Lower ?L B)"
  1300       txt {* @{term "\<Inter> B"} is not the infimum of @{term B}:
  1300       txt {* @{term "\<Inter> B"} is not the infimum of @{term B}:
  1301         @{term "\<Inter> {} = UNIV"} which is in general bigger than @{term "A"}! *}
  1301         @{term "\<Inter> {} = UNIV"} which is in general bigger than @{term "A"}! *}
  1302       by (fastsimp intro!: greatest_LowerI simp: Lower_def)
  1302       by (fastforce intro!: greatest_LowerI simp: Lower_def)
  1303   qed
  1303   qed
  1304 qed
  1304 qed
  1305 
  1305 
  1306 text {* An other example, that of the lattice of subgroups of a group,
  1306 text {* An other example, that of the lattice of subgroups of a group,
  1307   can be found in Group theory (Section~\ref{sec:subgroup-lattice}). *}
  1307   can be found in Group theory (Section~\ref{sec:subgroup-lattice}). *}