Section g_eill_complete_bound.
Variable (Σ : list eill_cmd) (Γ : list eill_vars) (n : nat).
Notation vars := (flat_map eill_cmd_vars Σ ++ Γ).
(* This is a surjection from [0,n-1] into the vars of Si,Ga *)
Hypothesis (w : vec eill_vars n)
(w_surj : forall u, In u vars -> exists p, u = vec_pos w p).
Let rx p := vec_pos w p.
Let Hrx l : incl l (flat_map eill_cmd_vars Σ ++ Γ) -> exists v, l ~p vec_map_list v rx.
Let s x v := Σ; vec_map_list v rx ⊦ x.
Notation "⟦ A ⟧" := (ill_tps s A) (at level 65).
Notation "'[<' Γ '|-' A '>]'" := (ill_sequent_tps s Γ A) (at level 65).

Theorem G_eill_complete_bound x :
[< map (fun c => !⦑c⦒) Σ ++ map £ Γ |- £ x >] vec_zero
-> Σ; Γ ⊦ x.