Structure ctx := Context {keyx : seq K; varx : seq U}.Structure ctx := Context {keyx : seq K; varx : seq U}.Structure ctx := Context {keyx : seq K; varx : seq U}.Structure ctx := Context {keyx : seq K; varx : seq U}.(* because contexts grow during computation, *)
(* we need a notion of sub-context *)

Definition sub_ctx i j := prefix (keyx i) (keyx j) /\ prefix (varx i) (varx j).

(* Specifications: *)
Lemma sc_refl i : sub_ctx i i.
Lemma sc_trans i j k : sub_ctx i j -> sub_ctx j k -> sub_ctx i k.