Section InverseTransport.

(* Theorem 27 in [1], main soundness argument *)
Lemma construct_h10cs_solution {xs tSs tPs P}:
normal_form P -> Forall encodes_sum tSs -> Forall encodes_prod tPs ->
typing (Gamma0 ++ (map Ut (map (fun x => poly_var (x + zt)) xs)) ++ (map St tSs) ++ (map Pt tPs)) P (poly_var tt) -> H10C_SAT h10cs.