Set: pp::colors Set: pp::unicode Assumed: vec Assumed: concat Assumed: concat_assoc Assumed: empty Assumed: concat_empty Defined: TypeM 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) (to_heq (congr2 vec (trans (congr (congr2 Nat::add (Nat::add_zeror (n + n))) (Nat::add_zeror n)) (Nat::add_assoc n n n))))) (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))) (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))) (to_heq (concat_assoc v w v))) (cast_heq (to_heq (congr2 vec (symm (Nat::add_assoc n n n)))) (v ; (w ; v))))