def olen_append
bend-osdev-aead@0.1.0.0 · PROOF.bend:147
import bend-osdev-aead@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-bytes@0.1.0.0/LAWS.bend as BL
147
148def olen_append(+a: B.Octets, +b: B.Octets) -> {Nat.add(B.Octets.len(a), B.Octets.len(b)) == B.Octets.len(B.Octets.append(a, b)) : Nat}:
149 %Equal.sym(Nat, B.Octets.len(B.Octets.append(a, b)), B.len(B.Octets.to_list(B.Octets.append(a, b))), BL.octets_len_list(B.Octets.append(a, b))) : {Nat.add(B.Octets.len(a), B.Octets.len(b)) == _ : Nat}
150 %Equal.sym(List<&2, U32>, B.Octets.to_list(B.Octets.append(a, b)), B.append(B.Octets.to_list(a), B.Octets.to_list(b)), BL.octets_append_list(a, b)) : {Nat.add(B.Octets.len(a), B.Octets.len(b)) == B.len(_) : Nat}
151 %len_append(B.Octets.to_list(a), B.Octets.to_list(b)) : {Nat.add(B.Octets.len(a), B.Octets.len(b)) == _ : Nat}
152 %BL.octets_len_list(a) : {Nat.add(B.Octets.len(a), B.Octets.len(b)) == Nat.add(_, B.len(B.Octets.to_list(b))) : Nat}
153 %BL.octets_len_list(b) : {Nat.add(B.Octets.len(a), B.Octets.len(b)) == Nat.add(B.Octets.len(a), _) : Nat}
154 {==}