abbreviation F1in where"F1in A1 A2 ≡ {x. F1set1 x ⊆ A1 ∧ F1set2 x ⊆ A2}" abbreviation F2in where"F2in A1 A2 ≡ {x. F2set1 x ⊆ A1 ∧ F2set2 x ⊆ A2}" abbreviation F3in where"F3in A1 A2 ≡ {x. F3set1 x ⊆ A1 ∧ F3set2 x ⊆ A2}" abbreviation Gin where"Gin A1 A2 A3 ≡ {x. Gset1 x ⊆ A1 ∧ Gset2 x ⊆ A2 ∧ Gset3 x ⊆A3}"
abbreviation Gset where "Gset ≡ BNF_Def.collect {Gset1, Gset2, Gset3}"
abbreviation Hmap :: "('a1 ==> 'b1) ==> ('a2 ==> 'b2) ==> ('p1, 'p2, 'p3, 'p, 'a1, 'a2) H ==> ('p1, 'p2, 'p3, 'p, 'b1, 'b2) H"where "Hmap f g ≡ Gmap (F1map f g) (F2map f g) (F3map f g)"
abbreviation Hset1 :: "('p1, 'p2, 'p3, 'p, 'a1, 'a2) H ==> 'a1 set"where "Hset1 ≡ Union o Gset o Gmap F1set1 F2set1 F3set1"
abbreviation Hset2 :: "('p1, 'p2, 'p3, 'p, 'a1, 'a2) H ==> 'a2 set"where "Hset2 ≡ Union o Gset o Gmap F1set2 F2set2 F3set2"
lemma Hset1_alt: "Hset1 = Union o BNF_Def.collect {image F1set1 o Gset1, image F2set1 o Gset2, image F3set1 o Gset3}" by (tactic ‹BNF_Comp_Tactics.mk_comp_set_alt_tac @{context} @{thm G.collect_set_map}›)
lemma Hset2_alt: "Hset2 = Union o BNF_Def.collect {image F1set2 o Gset1, image F2set2 o Gset2, image F3set2 o Gset3}" by (tactic ‹BNF_Comp_Tactics.mk_comp_set_alt_tac @{context} @{thm G.collect_set_map}›)
theorem Hmap_id: "Hmap id id = id" unfolding G.map_id0 F1.map_id0 F2.map_id0 F3.map_id0 ..
theorem Hmap_comp: "Hmap (f1 o g1) (f2 o g2) = Hmap f1 f2 o Hmap g1 g2" unfolding G.map_comp0 F1.map_comp0 F2.map_comp0 F3.map_comp0 ..
theorem Hmap_cong: "[∧z. z ∈ Hset1 x ==> f1 z = g1 z; ∧z. z ∈ Hset2 x ==> f2 z = g2 z]==> Hmap f1 f2 x = Hmap g1 g2 x" by (tactic ‹BNF_Comp_Tactics.mk_comp_map_cong0_tac @{context}
[] @{thms Hset1_alt Hset2_alt} @{thm G.map_cong0} @{thms F1.map_cong0 F2.map_cong0 F3.map_cong0}›)
theorem Hset1_natural: "Hset1 o Hmap f1 f2 = image f1 o Hset1" by (tactic ‹BNF_Comp_Tactics.mk_comp_set_map0_tac @{context} @{thm refl} @{thm G.map_comp0} @{thm G.map_cong0}
@{thm G.collect_set_map} @{thms F1.set_map0(1) F2.set_map0(1) F3.set_map0(1)}›)
theorem Hset2_natural: "Hset2 o Hmap f1 f2 = image f2 o Hset2" by (tactic ‹BNF_Comp_Tactics.mk_comp_set_map0_tac @{context} @{thm refl} @{thm G.map_comp0} @{thm G.map_cong0}
@{thm G.collect_set_map} @{thms F1.set_map0(2) F2.set_map0(2) F3.set_map0(2)}›)
definition Hwit1 where"Hwit1 b c = wit1_G wit_F1 (wit_F3 b c)" definition Hwit21 where"Hwit21 b c = wit2_G (wit1_F2 b) (wit_F3 b c)" definition Hwit22 where"Hwit22 b c = wit2_G (wit2_F2 c) (wit_F3 b c)"
lemma Hwit1: "∧x. x ∈ Hset1 (Hwit1 b c) ==> x = b" "∧x. x ∈ Hset2 (Hwit1 b c) ==> x = c" unfolding Hwit1_def by (tactic ‹BNF_Comp_Tactics.mk_comp_wit_tac @{context} [] @{thms G.wit1 G.wit2}
@{thm G.collect_set_map} @{thms F1.wit F2.wit1 F2.wit2 F3.wit}›)
lemma Hwit21: "∧x. x ∈ Hset1 (Hwit21 b c) ==> x = b" "∧x. x ∈ Hset2 (Hwit21 b c) ==> x = c" unfolding Hwit21_def by (tactic ‹BNF_Comp_Tactics.mk_comp_wit_tac @{context} [] @{thms G.wit1 G.wit2}
@{thm G.collect_set_map} @{thms F1.wit F2.wit1 F2.wit2 F3.wit}›)
lemma Hwit22: "∧x. x ∈ Hset1 (Hwit22 b c) ==> x = b" "∧x. x ∈ Hset2 (Hwit22 b c) ==> x = c" unfolding Hwit22_def by (tactic ‹BNF_Comp_Tactics.mk_comp_wit_tac @{context} [] @{thms G.wit1 G.wit2}
@{thm G.collect_set_map} @{thms F1.wit F2.wit1 F2.wit2 F3.wit}›)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.