equal
deleted
inserted
replaced
867 in setup_proof after_qed propss eqns goal_ctxt end; |
867 in setup_proof after_qed propss eqns goal_ctxt end; |
868 |
868 |
869 |
869 |
870 (* various flavours of interpretation *) |
870 (* various flavours of interpretation *) |
871 |
871 |
872 fun assert_not_theory lthy = if Named_Target.is_theory lthy |
|
873 then error "Not possible on level of global theory" else (); |
|
874 |
|
875 fun gen_interpret prep_expr prep_prop prep_attr expression raw_eqns int state = |
872 fun gen_interpret prep_expr prep_prop prep_attr expression raw_eqns int state = |
876 let |
873 let |
877 val _ = Proof.assert_forward_or_chain state; |
874 val _ = Proof.assert_forward_or_chain state; |
878 val ctxt = Proof.context_of state; |
875 val ctxt = Proof.context_of state; |
879 fun lift_after_qed after_qed witss eqns = Proof.map_context (after_qed witss eqns) #> Proof.reset_facts; |
876 fun lift_after_qed after_qed witss eqns = Proof.map_context (after_qed witss eqns) #> Proof.reset_facts; |
895 |> generic_interpretation prep_expr prep_prop prep_attr Element.witness_proof_eqs |
892 |> generic_interpretation prep_expr prep_prop prep_attr Element.witness_proof_eqs |
896 Local_Theory.notes_kind Local_Theory.activate expression raw_eqns; |
893 Local_Theory.notes_kind Local_Theory.activate expression raw_eqns; |
897 |
894 |
898 fun gen_sublocale prep_expr prep_prop prep_attr expression raw_eqns lthy = |
895 fun gen_sublocale prep_expr prep_prop prep_attr expression raw_eqns lthy = |
899 let |
896 let |
900 val _ = assert_not_theory lthy; |
897 val _ = if Named_Target.is_theory lthy |
|
898 then error "Not possible on level of global theory" else (); |
901 val locale = Named_Target.the_name lthy; |
899 val locale = Named_Target.the_name lthy; |
902 in |
900 in |
903 lthy |
901 lthy |
904 |> generic_interpretation prep_expr prep_prop prep_attr Element.witness_proof_eqs |
902 |> generic_interpretation prep_expr prep_prop prep_attr Element.witness_proof_eqs |
905 Local_Theory.notes_kind (Generic_Target.locale_dependency locale) expression raw_eqns |
903 Local_Theory.notes_kind (Generic_Target.locale_dependency locale) expression raw_eqns |
929 |> generic_interpretation cert_goal_expression (K I) (K I) Element.witness_proof_eqs |
927 |> generic_interpretation cert_goal_expression (K I) (K I) Element.witness_proof_eqs |
930 Local_Theory.notes_kind subscribe expression raw_eqns |
928 Local_Theory.notes_kind subscribe expression raw_eqns |
931 end; |
929 end; |
932 |
930 |
933 fun ephemeral_interpretation expression raw_eqns lthy = |
931 fun ephemeral_interpretation expression raw_eqns lthy = |
934 let |
932 lthy |
935 val _ = assert_not_theory lthy; |
933 |> generic_interpretation cert_goal_expression (K I) (K I) Element.witness_proof_eqs |
936 in |
934 Local_Theory.notes_kind Local_Theory.activate expression raw_eqns |
937 lthy |
|
938 |> generic_interpretation cert_goal_expression (K I) (K I) Element.witness_proof_eqs |
|
939 Local_Theory.notes_kind Local_Theory.activate expression raw_eqns |
|
940 end; |
|
941 |
935 |
942 fun interpret x = gen_interpret cert_goal_expression (K I) (K I) x; |
936 fun interpret x = gen_interpret cert_goal_expression (K I) (K I) x; |
943 fun interpret_cmd x = |
937 fun interpret_cmd x = |
944 gen_interpret read_goal_expression Syntax.parse_prop Attrib.intern_src x; |
938 gen_interpret read_goal_expression Syntax.parse_prop Attrib.intern_src x; |
945 |
939 |