Instance SS : SubstI.Subst subst (expr typ func) :=
  @FMapSubst.SUBST.Subst_subst _.Instance MentionsAnyOk : MentionsAnyOk MA _ _.Ltac solve_exprD := solve_exprD.solve_exprD tbl.Definition AFTER_SET_LOAD : rtac typ (expr typ func) :=
fun tus tvs n m c s e =>
  match e with
| (App (App (Inj (inr (Other (feq ty)))) l) r) =>
  match l with
  | App
      (App (App (Inj (inr (Smx fassertD))) P)
         (App
            (App (Inj (inr (Smx flocalD)))
               (App
                  (App (Inj (inr (Data (fset tyval id))))
                     v) T1)) T2)) R =>
    let l' :=
    App
      (App (App (Inj (inr (Smx fassertD))) P)
         (App
            (App (Inj (inr (Smx flocalD)))
                  (set_reif id v T1 tyval)) T2)) R
    in
    match @exprUnify (ctx_subst c) typ func _ _ _ _ _ 3
                                 tus tvs 0 l' r ty s with
    | Some s => RTac.Core.Solved s
    | None =>  RTac.Core.Fail
    end
  | _ => RTac.Core.Fail
  end
| _ => RTac.Core.Fail
end.

Lemma AFTER_SET_LOAD_sound : rtac_sound AFTER_SET_LOAD.