2014-01-24 06:31:02 +00:00
|
|
|
Set: pp::colors
|
|
|
|
Set: pp::unicode
|
|
|
|
Assumed: vec
|
|
|
|
Assumed: concat
|
|
|
|
Assumed: concat_assoc
|
|
|
|
Assumed: empty
|
|
|
|
Assumed: concat_empty
|
2014-02-07 23:03:16 +00:00
|
|
|
Defined: TypeM
|
2014-01-24 06:31:02 +00:00
|
|
|
Assumed: n
|
|
|
|
Assumed: v
|
|
|
|
Assumed: w
|
|
|
|
Assumed: f
|
|
|
|
f (v ; w ; empty ; (v ; empty))
|
|
|
|
===>
|
|
|
|
f (v ; w ; empty ; (v ; empty))
|
|
|
|
refl (f (v ; w ; empty ; (v ; empty)))
|
|
|
|
After disabling Nat::add_comm
|
|
|
|
f (v ; w ; empty ; (v ; empty))
|
|
|
|
===>
|
|
|
|
f (v ; (w ; v))
|
|
|
|
hcongr (hcongr (hrefl @f)
|
2014-02-07 23:03:16 +00:00
|
|
|
(to_heq (congr2 vec
|
|
|
|
(trans (congr (congr2 Nat::add (Nat::add_zeror (n + n))) (Nat::add_zeror n))
|
|
|
|
(Nat::add_assoc n n n)))))
|
2014-01-24 06:31:02 +00:00
|
|
|
(htrans (htrans (hcongr (hcongr (hcongr (hcongr (hrefl @concat) (to_heq (Nat::add_zeror (n + n))))
|
|
|
|
(to_heq (Nat::add_zeror n)))
|
|
|
|
(htrans (to_heq (concat_empty (v ; w)))
|
2014-02-07 23:03:16 +00:00
|
|
|
(cast_heq (to_heq (congr2 vec (symm (Nat::add_zeror (n + n)))))
|
|
|
|
(v ; w))))
|
|
|
|
(htrans (to_heq (concat_empty v))
|
|
|
|
(cast_heq (to_heq (congr2 vec (symm (Nat::add_zeror n)))) v)))
|
2014-01-24 06:31:02 +00:00
|
|
|
(to_heq (concat_assoc v w v)))
|
2014-02-07 23:03:16 +00:00
|
|
|
(cast_heq (to_heq (congr2 vec (symm (Nat::add_assoc n n n)))) (v ; (w ; v))))
|