src/Pure/proofterm.ML
changeset 13527 bbd328200a9a
parent 13102 b6f8aae5f152
child 13629 a46362d2b19b
equal deleted inserted replaced
13526:9269275e5da6 13527:bbd328200a9a
   153   | thms_of_proof tab (prf' as PThm ((s, _), prf, prop, _)) =
   153   | thms_of_proof tab (prf' as PThm ((s, _), prf, prop, _)) =
   154       (case Symtab.lookup (tab, s) of
   154       (case Symtab.lookup (tab, s) of
   155          None => thms_of_proof (Symtab.update ((s, [(prop, prf')]), tab)) prf
   155          None => thms_of_proof (Symtab.update ((s, [(prop, prf')]), tab)) prf
   156        | Some ps => if exists (equal prop o fst) ps then tab else
   156        | Some ps => if exists (equal prop o fst) ps then tab else
   157            thms_of_proof (Symtab.update ((s, (prop, prf')::ps), tab)) prf)
   157            thms_of_proof (Symtab.update ((s, (prop, prf')::ps), tab)) prf)
       
   158   | thms_of_proof tab (MinProof prfs) = foldl (uncurry thms_of_proof) (tab, prfs)
   158   | thms_of_proof tab _ = tab;
   159   | thms_of_proof tab _ = tab;
   159 
   160 
   160 fun axms_of_proof tab (Abst (_, _, prf)) = axms_of_proof tab prf
   161 fun axms_of_proof tab (Abst (_, _, prf)) = axms_of_proof tab prf
   161   | axms_of_proof tab (AbsP (_, _, prf)) = axms_of_proof tab prf
   162   | axms_of_proof tab (AbsP (_, _, prf)) = axms_of_proof tab prf
   162   | axms_of_proof tab (prf1 %% prf2) = axms_of_proof (axms_of_proof tab prf1) prf2
   163   | axms_of_proof tab (prf1 %% prf2) = axms_of_proof (axms_of_proof tab prf1) prf2
   163   | axms_of_proof tab (prf % _) = axms_of_proof tab prf
   164   | axms_of_proof tab (prf % _) = axms_of_proof tab prf
   164   | axms_of_proof tab (prf as PAxm (s, _, _)) = Symtab.update ((s, prf), tab)
   165   | axms_of_proof tab (prf as PAxm (s, _, _)) = Symtab.update ((s, prf), tab)
       
   166   | axms_of_proof tab (MinProof prfs) = foldl (uncurry axms_of_proof) (tab, prfs)
   165   | axms_of_proof tab _ = tab;
   167   | axms_of_proof tab _ = tab;
   166 
   168 
   167 (** collect all theorems, axioms and oracles **)
   169 (** collect all theorems, axioms and oracles **)
   168 
   170 
   169 fun mk_min_proof (prfs, Abst (_, _, prf)) = mk_min_proof (prfs, prf)
   171 fun mk_min_proof (prfs, Abst (_, _, prf)) = mk_min_proof (prfs, prf)