Section DowncastLemmas.
Implicit Types (s t: exp X) (Gamma: ctx)  (A: type).
Variable (n: nat).
Hypothesis (Leq: 1 <= n).

Lemma downcast_constants_ordered m Gamma s t Delta sigma:
1 <= m -> Delta ⊩(m) sigma : Gamma -> sigma • s ≡ sigma • t ->
exists Sigma tau, Delta ++ Sigma ⊩(m) tau : Gamma /\ tau • s ≡ tau • t /\
ord' Sigma <= 1 /\ (forall x c, c ∈ consts (tau x) -> c ∈ Consts [s; t]).