Skip to content

Instantly share code, notes, and snippets.

@jonsterling
Last active August 29, 2015 14:25
Show Gist options
  • Save jonsterling/2a7b8dccf8eccc912cb8 to your computer and use it in GitHub Desktop.
Save jonsterling/2a7b8dccf8eccc912cb8 to your computer and use it in GitHub Desktop.
Theorem darin : [{X:U{i}} {Y:U{i}} {a:X}{b:Y}{c:X}{d:Y} =(<a,b>;<c,d>;X*Y) => =(a;c;X) * =(b;d;Y)] {
auto;
[ assert [=(a;spread(<a,b>; x._.x); X)];
[reduce; auto, hyp-subst -> #8 [h.=(h;c;X)]; auto];
assert [=(c;spread(<c,d>;x.y.x); X)];
[reduce; auto, hyp-subst -> #9 [h.=(spread(<a,b>; x._.x); h; X)]; auto];
eq-cd [h.X, X*Y]; auto
, assert [=(b;spread(<a,b>; _.y.y); Y)];
[reduce; auto, hyp-subst -> #8 [h.=(h;d;Y)]; auto];
assert [=(d;spread(<c,d>; _.y.y); Y)];
[reduce; auto, hyp-subst -> #9 [h.=(spread(<a,b>;_.y.y);h;Y)]; auto];
eq-cd [h.Y, X*Y]; auto
]
}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment