Section mult.
Variable (a b c : nat-> nat) (ca cb cc : nat)
(Ha : is_cipher_of a ca)
(Hb : is_cipher_of b cb)
(Hc : is_cipher_of c cc).
Definition Code_mult :=
l = 0
\/ l <> 0
/\ exists v v1 r' r'' p,
r'' = r
/\ r'' = r'+1
/\ seqs_of_ones v v1
/\ p = (ca*v)⇣(r'*v1)
/\ p = (cb*cc)⇣(r'*v1).

Lemma Code_mult_spec : Code_mult <-> forall i, i < l -> a i = b i * c i.