src/Pure/Proof/extraction.ML
changeset 13719 44fed7d0c305
parent 13714 bdd483321f4b
child 13732 f8badfef5cf2
equal deleted inserted replaced
13718:9f94248d2f5a 13719:44fed7d0c305
   476                     val (defs'', corr_prf) =
   476                     val (defs'', corr_prf) =
   477                       corr (d + 1) defs' vs' [] [] [] prf' prf' None;
   477                       corr (d + 1) defs' vs' [] [] [] prf' prf' None;
   478                     val args = vfs_of prop;
   478                     val args = vfs_of prop;
   479                     val corr_prf' = foldr forall_intr_prf (args, corr_prf);
   479                     val corr_prf' = foldr forall_intr_prf (args, corr_prf);
   480                   in
   480                   in
   481                     ((name, (vs', ((nullt, nullt), corr_prf'))) :: defs',
   481                     ((name, (vs', ((nullt, nullt), corr_prf'))) :: defs'',
   482                      prf_subst_TVars tye' corr_prf')
   482                      prf_subst_TVars tye' corr_prf')
   483                   end
   483                   end
   484               | Some (_, prf') => (defs', prf_subst_TVars tye' prf'))
   484               | Some (_, prf') => (defs', prf_subst_TVars tye' prf'))
   485             | Some rs => (case find vs' rs of
   485             | Some rs => (case find vs' rs of
   486                 Some (_, prf') => (defs', prf_subst_TVars tye' prf')
   486                 Some (_, prf') => (defs', prf_subst_TVars tye' prf')
   578                                 (chtype [T --> propT] reflexive_axm %> f) %%
   578                                 (chtype [T --> propT] reflexive_axm %> f) %%
   579                                 PAxm (cname ^ "_def", eqn,
   579                                 PAxm (cname ^ "_def", eqn,
   580                                   Some (map TVar (term_tvars eqn))))) %%
   580                                   Some (map TVar (term_tvars eqn))))) %%
   581                             corr_prf)))
   581                             corr_prf)))
   582                   in
   582                   in
   583                     ((s, (vs', ((t', u), corr_prf'))) :: defs',
   583                     ((s, (vs', ((t', u), corr_prf'))) :: defs'',
   584                      subst_TVars tye' u)
   584                      subst_TVars tye' u)
   585                   end
   585                   end
   586               | Some ((_, u), _) => (defs, subst_TVars tye' u))
   586               | Some ((_, u), _) => (defs, subst_TVars tye' u))
   587             | Some rs => (case find vs' rs of
   587             | Some rs => (case find vs' rs of
   588                 Some (t, _) => (defs, subst_TVars tye' t)
   588                 Some (t, _) => (defs, subst_TVars tye' t)