(***** subtyping and contractiveness -- should split this into a separate file ******)

Lemma prove_HOcontractive {A} {NA: NatDed A}{IA: Indir A}{RA: RecIndir A} : forall X F,
(forall (P Q: X -> A) (x: X),
(ALL x:X, (|> P x <=> |> Q x) |-- F P x >=> F Q x)) ->
HOcontractive F.