src/HOL/Modelcheck/mucke_oracle.ML
changeset 15457 1fbd4aba46e3
parent 14982 ff1c919f4982
child 15531 08c8dad8e399
equal deleted inserted replaced
15456:956d6acacf89 15457:1fbd4aba46e3
   979 	 fun qtn (Type(a,tl)) = (a,tl) |
   979 	 fun qtn (Type(a,tl)) = (a,tl) |
   980 	 qtn _ = error "unexpected type variable in preprocess_td";
   980 	 qtn _ = error "unexpected type variable in preprocess_td";
   981 	 val s =  post_last_dot(fst(qtn a));
   981 	 val s =  post_last_dot(fst(qtn a));
   982 	 fun param_types ((Const("Trueprop",_)) $ (_ $ (Var(_,Type(_,t)))))  = t |
   982 	 fun param_types ((Const("Trueprop",_)) $ (_ $ (Var(_,Type(_,t)))))  = t |
   983 	 param_types _ = error "malformed induct-theorem in preprocess_td";	
   983 	 param_types _ = error "malformed induct-theorem in preprocess_td";	
   984 	 val pl = param_types (concl_of (get_thm (theory_of_sign sg) (s ^ ".induct")));		
   984 	 val pl = param_types (concl_of (get_thm (theory_of_sign sg) (s ^ ".induct", None)));		
   985          val l = split_constrs sg (snd(qtn a)) pl (prems_of (get_thm (theory_of_sign sg) (s ^ ".induct")));
   985          val l = split_constrs sg (snd(qtn a)) pl (prems_of (get_thm (theory_of_sign sg) (s ^ ".induct", None)));
   986 	 val ntl = new_types l;
   986 	 val ntl = new_types l;
   987         in 
   987         in 
   988         ((a,l) :: (preprocess_td sg (ntl @ b) (a :: done)))
   988         ((a,l) :: (preprocess_td sg (ntl @ b) (a :: done)))
   989         end)
   989         end)
   990 end;
   990 end;