Ltac sub_unfold :=
match goal with
| |- _ |-- ?A _ >=> ?A _ => unfold A
| |- _ |-- ?A _ _ >=> ?A _ _ => unfold A
| |- _ |-- ?A _ _ _ >=> ?A _ _ _ => unfold A
| |- _ |-- ?A _ _ _ _ >=> ?A _ _ _ _ => unfold A
| |- _ |-- ?A _ _ _ _ _ >=> ?A _ _ _ _ _ => unfold A
| v: _ |- _ => destruct v
end.
Hint Extern 2 (_ |-- _ >=> _) => sub_unfold : contractive.
Hint Resolve @prove_HOcontractive
@subp_allp @subp_imp @subp_refl @subp_exp @subp_andp @subp_orp @subp_subp
@subp_sepcon (* NOTE: This hint fails to work unless fully instantiated, for some reason;
so the client must re-do the subp_sepcon hint *)
@allp_imp2_later_e1 @allp_imp2_later_e2 : contractive.

(* Specifications: *)
Lemma  goedel_loeb {A}  {NA: NatDed A}{IA: Indir A}:
forall P Q : A ,   Q && later P |-- P ->  Q |-- P.