Skip to content

Commit 79a12f2

Browse files
committed
colors are proofs
1 parent 3ba3f85 commit 79a12f2

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

theories/cat.v

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,8 +1016,56 @@ Theorem pbsquarec_compP :
10161016
pbsquare w z h u <=> pbsquare w (z \; v) (h \; f) g.
10171017
Proof.
10181018
split=> [] sq.
1019-
have p : pullback (Cospan h u) := HB.pack (Span w z) sq.
1020-
1019+
1020+
have @sq_ispb : pullback (Cospan h u) := HB.pack (Span w z) sq.
1021+
have @uvfg_ispb : pullback (Cospan f g) := HB.pack (Span u v) uvfg.
1022+
have /=E2 := @is_square _ _ _ _ sq_ispb.
1023+
have /=E1 := @is_square _ _ _ _ uvfg_ispb.
1024+
1025+
have p1 : @isPrePullback Q C B (Cospan (h \; f) g) (Span w (z \; v)).
1026+
by constructor; rewrite /= compoA E2 -compoA E1 compoA.
1027+
pose big_black_square : prepullback (Cospan (h \; f) g) :=
1028+
HB.pack (Span w (z \; v)) p1.
1029+
1030+
have @from : forall
1031+
(big_red_square : prepullback {| top := D; left2top := h \; f; right2top := g |}),
1032+
big_red_square ~> pb_terminal big_black_square.
1033+
1034+
move=> big_red_square; unfold pb_terminal.
1035+
1036+
have /= := @is_square _ _ _ _ big_red_square.
1037+
1038+
pose F' := bot big_red_square.
1039+
set w' : F' ~> C := bot2left big_red_square.
1040+
set z' : F' ~> B := bot2right big_red_square.
1041+
move=> E3.
1042+
1043+
have xxx : isPrePullback Q A B (Cospan f g) (Span (w' \; h) z').
1044+
by constructor=> /=; rewrite -compoA E3.
1045+
pose red_black_square : prepullback (Cospan f g) :=
1046+
HB.pack (Span (w' \; h) z') xxx.
1047+
have := @from_unique _ (pb_terminal uvfg_ispb) red_black_square.
1048+
set blue := @from _ (pb_terminal uvfg_ispb) red_black_square.
1049+
move=> blue_unique.
1050+
1051+
have p3 : @isPrePullback Q C E (Cospan h u) (Span w' (bot_map blue)).
1052+
by constructor; rewrite /= (bot2left_map blue). (* buggy unifier without blue *)
1053+
pose blue_red_black_square : prepullback (Cospan h u) :=
1054+
HB.pack (Span w' (bot_map blue)) p3.
1055+
1056+
pose red := @from _ (pb_terminal sq_ispb) blue_red_black_square.
1057+
1058+
1059+
1060+
1061+
1062+
have p2 : prepullback_isTerminal.axioms_ Q C B (Cospan (h \; f) g) (Span w (z \; v)) p1.
1063+
constructor. econstructor=> /=.
1064+
1065+
pose xx : Pullback.type (Cospan (h \; f) g) :=
1066+
HB.pack (Span w (z \; v)) p2 p1.
1067+
apply: Pullback.class xx.
1068+
10211069
Admitted.
10221070

10231071
End th_of_pb.

0 commit comments

Comments
 (0)