@@ -10,14 +10,22 @@ Local Unset Elimination Schemes.
1010(* Homogeneous squares *)
1111
1212(*
13- x00 ----pi0 ---- x01
13+ a00 ----p0i ---- a01
1414 | |
15+ | > |
16+ pi0 = pi1
17+ | = |
1518 | |
16- p0i ==> p1i
17- | |
18- | |
19- x01-----pi1-----x11
20- *)
19+ a10-----p1i-----a11
20+
21+ Indexing of points in a square follows the convention for matrices,
22+ first a row index, then a column index. Unless stated otherwise,
23+ paths are oriented in the direction of increasing index i (or x, etc).
24+ In PathSquare below, the order of the paths is: left, right, top, bottom.
25+ The stylized 2-path on the antidiagonal goes from pi0 @ p1i to p0i @ pi1,
26+ complying with the definition of equiv_sq_path below.
27+
28+ *)
2129
2230(** Contents:
2331
@@ -72,6 +80,7 @@ Definition equiv_sq_path {A} {a00 a10 a01 a11 : A}
7280 {px0 : a00 = a10} {px1 : a01 = a11}
7381 {p0x : a00 = a01} {p1x : a10 = a11}
7482 : px0 @ p1x = p0x @ px1 <~> PathSquare px0 px1 p0x p1x.
83+
7584Proof .
7685 snapply Build_Equiv.
7786 { destruct p0x, p1x.
@@ -603,3 +612,40 @@ Proof.
603612 exact (apD (fun y => ap (fun x => f x y) p) q).
604613Defined .
605614
615+ (* Interchange playground *)
616+
617+ Definition interchange {A}
618+ {a00 a10 a20 a01 a11 a21 a02 a12 a22 :A} (** 9 points in big square of 2x2 squares *)
619+ (** sq00, top left, 4 paths *)
620+ (vi0 : a00 = a10) (* i = 0,1 *)
621+ (h0i : a00 = a01)
622+ (vi1 : a01 = a11)
623+ (h1i : a10 = a11)
624+ (** sq10, bottom left, 3 paths, h1i shared with sq00 *)
625+ (vj0 : a10 = a20) (* j = 1,2 *)
626+ (vj1 : a11 = a21)
627+ (h2i : a20 = a21)
628+ (** sq01, top right, 3 paths, vi1 shared with sq00 *)
629+ (vi2 : a02 = a12)
630+ (h0j : a01 = a02)
631+ (h1j : a11 = a12)
632+ (** sq11, bottom right, 2 paths, vj1 shared with sq10 and h1j with sq01 *)
633+ (vj2 : a12 = a22)
634+ (h2j : a21 = a22)
635+ (sq00 : PathSquare vi0 vi1 h0i h1i)
636+ (sq10 : PathSquare vj0 vj1 h1i h2i)
637+ (sq01 : PathSquare vi1 vi2 h0j h1j)
638+ (sq11 : PathSquare vj1 vj2 h1j h2j)
639+ :
640+ sq_concat_h (sq_concat_v sq00 sq10) (sq_concat_v sq01 sq11)
641+ =
642+ sq_concat_v (sq_concat_h sq00 sq01) (sq_concat_h sq10 sq11).
643+
644+ Proof .
645+ destruct sq00, sq11, vj0, h0j.
646+ Admitted .
647+
648+
649+
650+
651+
0 commit comments