def snoc_append_cons

bend-collections-laws-crypto@1.0.0.0 · proofs/lib/list.bend:184

import bend-collections-laws-crypto@1.0.0.0/proofs/lib/list.bend as List
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/lib/common.bend as SC

184def snoc_append_cons(-A: Data, +xs: List<&2, A>, +x: A, +acc: List<&2, A>) -> {SC.append(A, SC.snoc(A, xs, x), acc) == SC.append(A, xs, Con{x, acc}) : List<&2, A>}:
185  match xs:
186    case Nil{}:
187      {==}
188    case Con{+h, +t}:
189      cons_cong(A, h, SC.append(A, SC.snoc(A, t, x), acc), SC.append(A, t, Con{x, acc}), snoc_append_cons(A, t, x, acc))

Uses (4)

Used by (1)