967 "G,(A::'a triple set)|\<turnstile>insert (t::'a triple) ts \<Longrightarrow> G,A\<turnstile>t \<and> G,A|\<turnstile>ts" |
967 "G,(A::'a triple set)|\<turnstile>insert (t::'a triple) ts \<Longrightarrow> G,A\<turnstile>t \<and> G,A|\<turnstile>ts" |
968 apply (fast intro: ax_derivs.weaken) |
968 apply (fast intro: ax_derivs.weaken) |
969 done |
969 done |
970 |
970 |
971 lemma ax_methods_spec: |
971 lemma ax_methods_spec: |
972 "\<lbrakk>G,(A::'a triple set)|\<turnstile>split f ` ms; (C,sig) \<in> ms\<rbrakk>\<Longrightarrow> G,A\<turnstile>((f C sig)::'a triple)" |
972 "\<lbrakk>G,(A::'a triple set)|\<turnstile>case_prod f ` ms; (C,sig) \<in> ms\<rbrakk>\<Longrightarrow> G,A\<turnstile>((f C sig)::'a triple)" |
973 apply (erule ax_derivs.weaken) |
973 apply (erule ax_derivs.weaken) |
974 apply (force del: image_eqI intro: rev_image_eqI) |
974 apply (force del: image_eqI intro: rev_image_eqI) |
975 done |
975 done |
976 |
976 |
977 (* this version is used to avoid using the cut rule *) |
977 (* this version is used to avoid using the cut rule *) |
978 lemma ax_finite_pointwise_lemma [rule_format]: "\<lbrakk>F \<subseteq> ms; finite ms\<rbrakk> \<Longrightarrow> |
978 lemma ax_finite_pointwise_lemma [rule_format]: "\<lbrakk>F \<subseteq> ms; finite ms\<rbrakk> \<Longrightarrow> |
979 ((\<forall>(C,sig)\<in>F. G,(A::'a triple set)\<turnstile>(f C sig::'a triple)) \<longrightarrow> (\<forall>(C,sig)\<in>ms. G,A\<turnstile>(g C sig::'a triple))) \<longrightarrow> |
979 ((\<forall>(C,sig)\<in>F. G,(A::'a triple set)\<turnstile>(f C sig::'a triple)) \<longrightarrow> (\<forall>(C,sig)\<in>ms. G,A\<turnstile>(g C sig::'a triple))) \<longrightarrow> |
980 G,A|\<turnstile>split f ` F \<longrightarrow> G,A|\<turnstile>split g ` F" |
980 G,A|\<turnstile>case_prod f ` F \<longrightarrow> G,A|\<turnstile>case_prod g ` F" |
981 apply (frule (1) finite_subset) |
981 apply (frule (1) finite_subset) |
982 apply (erule rev_mp) |
982 apply (erule rev_mp) |
983 apply (erule thin_rl) |
983 apply (erule thin_rl) |
984 apply (erule finite_induct) |
984 apply (erule finite_induct) |
985 apply clarsimp+ |
985 apply clarsimp+ |