proposition: Lemma subject_expansion M N : step' M N -> typable N -> typable M.
proof: Proof. case. + by move=> /stepI_expansion H [] > /H /typable_intro. + move=> /stepK_expansion H [] > /H{H}. by case: M => > => [[? /typable_intro]|[? /typable_intro]|]. Qed.
imports: Undecidability.IntersectionTypes.CD Undecidability.IntersectionTypes.Util.CD_facts Undecidability.LambdaCalculus.Util.term_facts PeanoNat Relations List Lia ssreflect