Definition is_cipher_of f a :=
l+1 < q
/\ (forall i, i < l -> f i < power q 2)
/\ a = ∑ l (fun i => f i * power (power (S i) 2) r).
Fact is_cipher_of_0 f a : l = 0 -> is_cipher_of f a <-> 1 < q /\ a = 0.
Fact is_cipher_of_inj f1 f2 a : is_cipher_of f1 a -> is_cipher_of f2 a -> forall i, i < l -> f1 i = f2 i.
Fact is_cipher_of_fun f1 f2 a b :
(forall i, i < l -> f1 i = f2 i)
-> is_cipher_of f1 a
-> is_cipher_of f2 b
-> a = b.

Lemma is_cipher_of_equiv f1 f2 a b :
is_cipher_of f1 a
-> is_cipher_of f2 b
-> a = b <-> forall i, i < l -> f1 i = f2 i.