equal
deleted
inserted
replaced
438 num_T --> num_T --> num_T) |
438 num_T --> num_T --> num_T) |
439 $ mk_num n1 $ mk_num n2) |
439 $ mk_num n1 $ mk_num n2) |
440 | _ => raise TERM ("Nitpick_Model.reconstruct_term.term_\ |
440 | _ => raise TERM ("Nitpick_Model.reconstruct_term.term_\ |
441 \for_atom (Abs_Frac)", ts) |
441 \for_atom (Abs_Frac)", ts) |
442 end |
442 end |
443 else if not for_auto andalso is_abs_fun thy constr_x then |
443 else if not for_auto andalso |
|
444 (is_abs_fun thy constr_x orelse |
|
445 constr_s = @{const_name Quot}) then |
444 Const (abs_name, constr_T) $ the_single ts |
446 Const (abs_name, constr_T) $ the_single ts |
445 else |
447 else |
446 list_comb (Const constr_x, ts) |
448 list_comb (Const constr_x, ts) |
447 in |
449 in |
448 if co then |
450 if co then |
558 let |
560 let |
559 val ((head1, args1), (head2, args2)) = |
561 val ((head1, args1), (head2, args2)) = |
560 pairself (strip_comb o unfold_outer_the_binders) (t1, t2) |
562 pairself (strip_comb o unfold_outer_the_binders) (t1, t2) |
561 val max_depth = max_depth - (if member (op =) coTs T then 1 else 0) |
563 val max_depth = max_depth - (if member (op =) coTs T then 1 else 0) |
562 in |
564 in |
563 head1 = head2 |
565 head1 = head2 andalso |
564 andalso forall (bisimilar_values coTs max_depth) (args1 ~~ args2) |
566 forall (bisimilar_values coTs max_depth) (args1 ~~ args2) |
565 end |
567 end |
566 else |
568 else |
567 t1 = t2 |
569 t1 = t2 |
568 end |
570 end |
569 |
571 |
702 block_of_names show_consts "Constant" |
704 block_of_names show_consts "Constant" |
703 noneval_nonskolem_nonsel_names |
705 noneval_nonskolem_nonsel_names |
704 in |
706 in |
705 (Pretty.chunks (if null chunks then [Pretty.str "Empty assignment"] |
707 (Pretty.chunks (if null chunks then [Pretty.str "Empty assignment"] |
706 else chunks), |
708 else chunks), |
707 bisim_depth >= 0 |
709 bisim_depth >= 0 orelse |
708 orelse forall (is_codatatype_wellformed codatatypes) codatatypes) |
710 forall (is_codatatype_wellformed codatatypes) codatatypes) |
709 end |
711 end |
710 |
712 |
711 (* scope -> Time.time option -> nut list -> nut list -> nut NameTable.table |
713 (* scope -> Time.time option -> nut list -> nut list -> nut NameTable.table |
712 -> KK.raw_bound list -> term -> bool option *) |
714 -> KK.raw_bound list -> term -> bool option *) |
713 fun prove_hol_model (scope as {ext_ctxt as {thy, ctxt, ...}, card_assigns, ...}) |
715 fun prove_hol_model (scope as {ext_ctxt as {thy, ctxt, ...}, card_assigns, ...}) |