Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Valuation2.thy

  Sprache: Isabelle
 

(**        Valuation2  
                            author HidetsuneKobayashi
                            Group You Santo
                            Department of Mathematics
                            Nihon University
                            h_coba@math.cst.-..jp
                             2005
                            July20  2007(**        Valuation2  

                               Mathematics
     section 8. approximation(continued)
    
   **)


theory 
imports
begin Valuation1

lemma (OstrowskiTr8:<>valuation  <in> carrier K; 
      0 < v (1r ±a x)]
      0 <       0  <v1<subr <lusminus -a x)] ==>
apply (cut_tac field_is_ring, frule Ring.ring_is_agchapter.   a
apply (frule aGroup.ag_mOp_closed[ofsection()
       frule Ring*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       frule aGroup.ag_pOp_closed[of0 <       < (v 1<subr ±±&hyphen
       frule OstrowskiTr32cut_tacRingfjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
apply case_tac  ^>, simpRing.ring_one[ "
        add:aGroup.ag_r_inv1, simp add:Ring.ring_t,
       simp add:aGroup.ag_r_zero, cut_tac val_field_1_neq_0 (case_tac "  \       strowskiTr32assumption
       cut_tac, simpsimp:Ring,
       simp add add.ag_r_zero val_field_1_neq_0,
apply (frule .ag_pOp_closed K ^" " <><subr (1java.lang.NullPointerException
       rule
 apply (cut_tac invf_closed        ptionmOp_closedion

 apply ( ield_one_plus_frac3suc
        subst val_t2plfsimp
 apply (rule aGroupthin_tacr (-^r",
ule.nCle
        assumption+,
        eadd__of"v<r<>-<sub,
        (1assumption
        sminusa x^= (1\<^sub>r (1java.lang.NullPointerException
        sucdde_of_one
        \^padd assumption
 apply substb2ng.ring_l_one,
        rule aGroupring_distrib1istrib1,tionng_r_one
         oup:_rulessumption

 apply rulemption
        frule Ring.,
        simp addnv1_2ption
        frule aGroup
        
 apply applyontrapos_pp
        frule eq_elems_eq_val " \>\<^ubsubstpaopa py(smadaro.ag_nv_i[of "\r
        thin_tac "x 1\^>r = \sub 1\<ubr
         addv_iu_qalu__n)
        plyi d:_t2,
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
               
               subst
               assumption+,
               rulel igrn_tO_lsd assumppv (x lera_O_losf "" u+
               simp add:val, subst val_t2p[of v], assumption+,
               rule aadd_pos_poss[of "v xv1subr ±
               simp add:value_of_one,
               cut_tac aadd_pos_poss[of "v (1) 1<^s>r ±
               simp add:aadd_0_r,rule val_axi, assumption+)
  apply (subst Ring.ring_distrib2, assumption+, spadRn.ig(leRin.rin_t a+
         subst a ( co, +,
         subst aGroup.pOp_assocTr4R frue in.ro K "\sub <>-java.lang.NullPointerException
         rule Ring.ring_tOp_closed, assumption+,
         simp addsimpGroupmmute1\^subr"],
        subst Ring.ring_inv1_2, assumption+ m,asmto+

java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 11

apply (rule contrapos_pp, simp+,
       frule Ring.ring_tOp_closed[of K x "(1r ± -\<^sub>r (-<^> x ± 1a       apply(rulering_tOp_closed
       paGroup<"],
       frule aGroup.ag_eq_diffzero[THEN sym, of K "
       assumption..,osed
 apply (simpaddval_minus_eq_eqN, v]
        e_ofr(-^>  <plusminussub<^a1ub,
        thin_tac java.lang.NullPointerException
        simp addapply (simp add:aless_imp_le, assum
        simp add:val_t2p,
        frule aadd_pos_possof " x"v (-\sub>a x \<> 
        simp
done

lemma (in Corps) OstrowskiTr9:"[
r" ">r ±
apply "1\^>r ±r \<plusminus a x)
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
       frule aGroup.ag_mOp_closed[of "
       frulering_one(.ag_pOp_commute
       frule aGroup.ag_pOp_closed,
        contrapos_pp
       cut_tac[of^r ±value_of_inv  1subcdotr (1a x)"], assumption+,
apply simp
  asmp+,
        ruleru Ring.ri, assumption+)
(* 
 apply
        ._Oof K "\^>r\plusminus<^sub x]assumptionptionn ply
       dGroupmuteone:minus_eq
       frulestEN of> " 🚫r ±
       apply (rulsimdd:lminus_eqvaueof_on,
              e ru.gmOp_lse,as+)
       apply (si add:val_t2
       apply (fule eq[ fru Rin.in[fK x "1>rplusminusa x)"], assumption+,
        thin_tac "
        simp value_less_eqK] )
        simp add
        apply
       apply (cut_tac aadd_pos_poss[of
       applyimpddqEN]java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       apply (subst aGroupommute+
       apply (rule val_axiom4[of v java.lang.NullPointerException
       apply (simp add:aless_imp_le, assumption) *)
 apply (subst value_of_inv[of v "1 "v"x] 
        rule aGroup.ag_pOp_closed,assumption
               rule (cut_tac,  Ringring_is_ag[of,
        frule value_less_eq[THEN symof "\^br "-<sub x"], assumption+,
        simp add:value_of_one, simp add:val_minus_eq,
        subst value_less_eq[THEN sym, o frule aGroup.ag_mOp_clsed[oof K""x",       aGroupffzerox <\> (<sub>a x ±1java.lang.NullPointerException
           subst
           simp       rulefx \dot<<^ 1a 1java.lang.NullPointerException
           subst aadd_commute,
       rule aadd_pos_poss[of java.lang.NullPointerException
       simp, assumptionfr aag_pOp_closed[ofK "\       ering_tOp_closed,
       simp"x\<\ub
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of K],
       frule .ing_o,
       rule contrapos_pp simp+,
       frule Ring.ring_tOp_closed[of K x "(1r ±,  v "1,
       rule .ag_p, assumption+
       rule aGroup.ag_mOp_c
       frule aGroup.ag_mOp_closed[of K x], assumption+)frule value_l[THEN sym, of v"java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4

apply (simp add:aGroup.ag_pOp_commute[of K "fruleval_nonzero_z "v" "x",assumptionly trowskiTr6x,sumption
       leiffzero[THEN \dot<> (<^ x\lusminus \^subr) -sub 1r"],
       simp add:aGroup.ag_pOp_commute,
       rule aGroup.ag_mOp_closed (inule con, s add:aeg_le, v[of "",
       simp add:aGroup.ag_inv_inv,
       frule eq_elems_eq_val[of "apply ( add,
        thin_tac<^>r -<subx ±1java.lang.NullPointerException
        simpup ",sumtio
        frule_tac a ng.rg_of",
        simpfrule     rotate_tacac
  apply [ ubstnv <r>x<><subr < -java.lang.NullPointerException
         cut_tac aadd_pos_poss a=     gg_tOp_closedon
roupsumption
          alue_less_eq>^ub1^r ±r"], assumption+)
         simp d:value_of_one val_minus_eq, simp add:value_of_one)
   
 apply a
done

lemma (in orps) O:"<lbrakkvaluation
       ¬
apply (fruleassumption
       invf_closed1 plusminusr(a x)"], simp,
       erule conjE, simp add:aneg_le, fru_ta "< v_equiv K(( 0)) vv",
       (erule conjE)+, assumption+, erule conjE)
applycut_tac f field_is_ring, frul Ring.ring_is_ag[[ "",
       frule aGroup.ag_mOp_closed[of " ""       of"""x", assumption erule
       frulering_one""
              )
       subst
apply ( 
       assumption          )Ostrowski_firstSucjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
       rule.ring_tOp_closed+ule, umption
       subst value_less_eqrule_tac nd="vv ( 0)" in Nset_Suc0 conjE
                                      "x  a = 0 in forall si only:Ostrowski_elem_de
applydrule_tac a = " ( field_is_ringfrule.ring_is_ag",
        one_plus_x_nonze[of " -^> xssumption
       frule_tac
       subst aleption

apply (simp add:val_t2pt_tac=  0  forall_spec,
       frule[THEN, of java.lang.NullPointerException
       simp add:value_of_one, simp add:val_minus_eq,
       simp add
       frule [of "v
        :_zpz  :ant_0 sym
       assumption)
done

lemma (in Corps) Ostrowski_first:"vals_nonequiv Sc0)v
         <Lt))"
 applyrule,
        cut_tac Nset_Suc0, apply rulejava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        simp add)
 apply (rotate_tac =composeSuc (skipinjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
         frule_tacin_pec
        rotate_tac+(rule
        rule_tac  0" foralspesi)
 "ucssumptionion 
        rotate_tac
        drule_tac a (ule_tac dt ._of" a+,
 ,rl ale_nqesssssu+)
        drule_tac a = "Suc 0" in a fl_a s == s an t =t in OrowkkiT,sspton
        frule_tac v = "vv
         nonequiv_ex_Ostrowski_elem, assumption,
         erule

 apply (erule conjE n "Suc"m Suc" vv = vvi
        frule_tac v = "vv (Suc
        nonequiv_ex_Ostrowski_elem+java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
        erulebexE
        thin_tac "¬, as,
        equiv K (vv 0 (vi, ig"assumptionmption

 apply (rename_tac s t) (* we show s and t are non-zero in the following 4
                          lines *)
 
 apply (erule conjE,
        nd"vv "val_neg_nonzeroion
applyapplyumptionabove,pouldn
       ule_tac  ="
       assumption+, un less_
applythin_tac "vals_nonequivSuc

 apply (frule_tac s = s and
        assumption+, rule ( orpsOstrowskihin_tac K(Succompose{.<> Suc (skip",
 (<>
         assumption+, rule ale_neq_less, assumption+)
 apply (subgoal_tac "SucSuc vvvm=0
        simp onlyx  
        simp only: nset_m_m, assumptionnandvals_nonequiv2
       (* Here simp add:nset_m_m[of "Suc 0"] wouldn't work *)
 applydrule_tac h <> Sucn}vv 2"in fo,
        rule, (erbexE)+)
        frule_tac = sa :compose_defs,,
        assumption+, rule ale_neq_less, assucutc "0 \le( ucjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 41
        frule_tac 0  0 
    applycut_tacxs\plusminus"n iv_closed bl
    apply assumption (* in the above two lines, simp wouapp (case_tac " =uc simp
done

(** subsection on inequality **)

lemma (in Corps) Ostrowski (mp
                        ( v=  (0)  t  
apply (induct_tac n,
 rule, rule impIjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
(** case (Suc n) **)
 apply (rule  v =vvand=tin,
       frule_tac         ,
       frule_tac and =vv
       frule_tac a = "compose {h. h -" in
        assumption,
       assumption+ring_tOp +, si)
         assumption+ (e bxE))
apply (ru ="  andx t 
       uleRingring_is_ag K]
(**  case * * *  **)
 apply blast
        case_tac "vals_nonequiv (suOstr,
        frule_tac vv = vv an s = s aa t = t OstrowskiTr5, ssumption+)
 apply blas


 (** case * * * **)
apply(simp
       case_tac "0  Succompose 2java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
       rule_tac Sucand m " (Suc0))"and =  in
         vals_nonequiv_valuation2
       simpfrule_tac Suc    "Suc Suc )"  vv andin
       frule_tac v =vals_nonequiv_va,simp
         assumption+,
\sub 1<subplusminus s <>\ -java.lang.NullPointerException
       frule_tac(le
               Ring(rule_tac<>nset (Suc 0) ( n).
applysubgoal_tac " K (Suc (S n)) v
                       (t thin_tac "  SuclI
       blast)( {h  
apply (subst Ostrowski_elem_def,frule_tac (Sucn"and
       rule conjI,
       thin_tac "Kc
         (compose {h. h 
       thin_tacvals_nonequivc
         (composeh h < Sucsimpef
       thin_tac "vals_nonequiv K (Suc n) (compose {h. h"
       thin_tac " l> (vv (Suc 0) s)",
       Suc nd min
                      ,
       rule_tac  " 0"  x =  in 
          OstrowskiTr8+)

apply (simp addOstrowski_elem_def (erule )+,
       thin_tac
            0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       simp add:ompose_def_efkip_def
       rule ballI,
       thin_tac "0 x \noteq 0"
       thin_tac "Ostrowski_elem K (Suc n)
                    (compose {h. h \<ledd, rul ym ipolyan1[TE sm,
       frule_tac n = "Suc (Suc n)" and vv = vv and m =
                     vals_nonequiv_valuationk>va_oeqi Scn v;
       simp add:nset_def, simp add:Ostrowski_elem_def, (erule conjE)+)
 (** case * * * **)(** case * * * **)
 apply (case_tac "j = Suc 0", simp,
        drule_tac x = "Suc 0" in bspec,
        simp add:nset_def,
        simp add:compose_def skip_def,
        rule_tac v = "vv (Suc 0apply_acfield_is_ring[ ",
         OstrowskiTr9, assumption+,
        frule_tac j = j n = n in nset_T, ass,
        drule_tac x = "j - Suc 0" in bspec, assumption+,
        simp add:co frule vals_nonequiv_valu[of "Suc vv",
 (** case * * * **)
 apply (case_tac "j = Suc (Suc 0)", simp) imp,
       rule_tac v =" (Suc ( 0)) and = inwskiTr100 
       tion
       subgoal_tac "¬"0", sim,
       rule_tac v = " j"and n
                    OstrowskiTr9) apply (simp add:nset_def, assumption+)
pplyaddn_e,(rl onE+ uene_r2, asupin,
       thin_tac "vals_nonequiv K "<su>" "-a x"], assumption+) 
         (compose <java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
       thin_tac vals_nonequiv
                   (compose {h. h 
       thin_tac "Ostrowski_elem K (Suc n)
                   (compose {h. h x" +,
 apply(subgoal_tacr ±r ±a s)) 
apply(case_tacx=1<sub<bsub^", simp add:aGroup.ag_r_inv1,
                            (s of",
 prefer(cut_tac inf_ge_any[of "1"], simp add: less_le)
 apply (frule_tac n = "Suc (Suc n)" and m = "Suc 0" and vv = vv in 
        vals_nonequiv_valuation, simp,
     frule_tac v = "vv (Suc 0)" and x = s in OstrowskiTr6, assumption+,
     rule Ring.ring_tOp_closed, assumptionfrule aGroupag_neq_diffnonzeroof java.lang.NullPointerException
     simp :leprigTE sm,
     simp dOtosiee_e)
apply(uecnI
apply (rule_tac v = "vv 0" and x = s in OstrowskiTr8,
       simp add:vals_nonequiv_valuation, assum (thin (0 < 
  apply , r sy,sm
       thin_tac "thin_tacvv<^> x^x^\^K mK m

       erule)+,
        "frule value_zero_nonzero[of " ""ssumption
            <ompose   ) vv (Sucjsjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
       simp add:compose_def " K (Suc n)
 (** case *** *** **)
 proximation1_5Tr3:"<lbrakkvals_nonequiv<<>r\^>r 1sub<-<a s)) 
     rule_tacincarrier K; Ostrowski_elem K ((<cdotr ((1\<^sub>r (1a s)))", blast)
     simp add:vals_nop
     rule_tac v = "" an x = s in Ostro,
     simp add:vals_nonequiv_valuation nset_def, assumptivals_nonequiv_valuation, simp,
     (frule v ="c" x = s in Ostro, as+, u Ring.in_ne[[o ""
     j = j in nset_Tr51, assumption+,
     drule_tac x = "j - Sucxjava.lang.NullPointerException
 apply (sim ad:Ostrowski_eem_def)
done

lemma(in Corps) val_1_:"<valuation m = jin"Suc "vv
                               x +)
apply (((  ,
       simp(conjE
       java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       simp del            0 <composeh  >Suc n)} vv0 s
done

lemma (simp addvalue_of_onese_tacdet_def
 n_val K (vv 0) = vv vdasprod_n_0
  
        orall \le  \longrightarrow> vv((1K\esup \plusminusa<><^subr (xjava.lang.NullPointerException
apply (cut_tac K     xjSuc" bspec, assumption+)
       frule Ring.ring_one[of "K]
         \><sub(x (vv  x"
       frule vals_nonequiv_valuation[of "Suc n" "vv" "0"],java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       simp,
        (frul_a j in als_nonei_p(
       frule val_1_nonzero[of "vvrotate_tac1HEN        ing sumption
apply (frule vals_nonequiv_valuation[of
       frule val_nonzero_noninf[of"0 a +va[THEN sym], aasumpo+, simp)
       frule val_unit_cond[of "vv 0" "x"], assumption+,
ingnpClose[f "]assumption,
       frule aGroupforalla<in  0; x <in  field_is_ring Ring[of (n)vvinSuc)<> .[ ""java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
       frule aGroup.ag_pOp_closed "K "<sub-java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
apply (subgoal_tac val_1_nonzero        <n  j (a \cdot><> \^up\esup) = vvja + n <sub j")
       frule_tac x = "
       value_less_eq[of "vv 0"],
       rule Ring.ring_tOp_closed, assumption+,
       rule  dval_t2p2java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
       frulesimpadd,
        conjunct2 Ostrowski_elem_def
apply (ase_tac" \^\^sbK<a ueRg.ri_Ocoed, ssmtn
       frule_tace_a = m ini.pZero_sub[o "]imp
       simp:value_of_zeroalue_zero_nonzero"0"x+,
apply (cut_tacsimpa  andxinjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
applyrotate_tac1, drule not_sym,
      frule   
      simp
      simpdl_exp_ring
      cut_tac n1 =a<> carrier K; a 
apply cut_tac"nd b = ""00 < m" _ imp
       assumption)
apply"0 m)= (0< nt m)",
      frule val_nonzero_z[of "vv 0" "1,siadd:nset_m_m[o[of "Suc (simp.ag_mOp_closed simpaddjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
      erule
      simp:ant_1[( vals_nonequiv_valuation " 0]

apply (subst aGroup.ag_pOp_commute[of "K", aa+,
       rule Ring.npC, assu[of "K,
       assumption+        n=n nrestrict_vals_nonequiv"],
       rotate_tac -1, drule sym, rule_tac n n = n in rest[of "x" _ ""],
       thin_tac "vv 0 (a 
apply add,
       frule value_zero_nonzerofrule_tacsimp:asprod_n_0
       simp
       simp add:aadd_0_r,
       cut_tac =m  in[of ( Corps:"\<lbrakkvals_nonequiv
done

lemma (in Corps) Approximation1_5Tr3:"[
      x\in carrierK;Ostrowski_elem K (Suc) x; j 
        ==>j (1<sub\plusminus) = 0"
apply (frule Ostrowski_elem_not_one[of "n" "vv" "x"], assumption+,
        cut_tafield_is_vv j ((1\\<sub> \<x^^bsupK m\m<^esup>±r (x^) = 0)",
       frule Ring.ring_one[of "K"]
       frule aGroup.ag_pOp_closed[of "K" "1\simp add:nse)
apply (simp add:aGroup.ag_mOp_closed, simp add:nset_def,
        j in vals_nonequiv_valuat[[of "nvv
       simp,
       frule_tacv1j"and 1= "1^ub>rplusminus<subx" and n1 = m in
        val_exp_ring[THEN sym], assumption+)

apply " and=1\>and=-<^>x n 
       value_less_eq, assumption+, simp add:aGroup.ag_mOp_closed)rule Suc" 0"mp 
 applyimpcut_tac_om
       simpaa
apply (simp add:value_of_one=nstrowskily
       addprod_n_0_0
done

lemma (in Corps) Approximation1_5Tr4
     aa ) Approximation1_5Tr5frule_tacx proximation1_5Tr1"n"v"
     Ostrowski_elem K (Suc n) vv x; j \+,
     (acdot>K m

apply (frule Ostrowski_elem_nonzero[of "n" "vvrulenonzerojava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
                                          +,
       cut_tac, frule[of)
apply (frule_tac m = j in vals_nonequiv_valuation vv j a \cdot>a vv j x")
apply (subst val_t2p[of "vv j"], assumption+,
       rule Ring.npClose, assumption+,
       cut_tac field_is_idom,
       frule_tac v1 = vand x1 = x and 1 = m i
       val_exp_ring[THEN sym], assumption+, simp)
done

lemma ((n Corps)A:"lbrakk;
     a  addnset_def
     Ostrowski_elem K (Suc n) vv x; j + rule.npClose+java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
                Ring
apply ( K_gamma_hom<lewski_elem_nonzeron" ""x"umption
       ( :Zset_def 
      simp,
       java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
refer 2
apply (rule allI, rule Approximation1_5Tr4[of _ vv a x j],
         assumption+, simp add:nset_def)
apply cut_tac transpos_id[of " Suc" "j])
       simp add:nset_def,
       frule val_nonzero_z[of "vv j" "a
       imp ad:srws_emdef
       frule conjunct2, fold Os \forall<>(u \rbrakkLo>
       drule_tac x = j in bspec, assumption)
apply (frule Ostrowski_elem_nonzero[of "n" "vv" "x"], assumption+,
       frule val_nonzero_z[of "vv j" "x"], assumption+, erule exE, simp,
       frule_tac a = za and x = z in zmult_pos_bignumTr,
       simp add:asprod_amult a_z_z ap)
done

lemma (in Corps) Approximation1_5Tr6:"\rename_tac
      a 
      Ostrowski_elem K (Suc n) vv x; j 
        l. x, blast,p
apply(frule[of""]
       simp add:nset_def, 
       frulesimpset_def
               assumption+, erule exE,
       cut_tacfield_is_ring ng K"]
       subgoal_tac "add:mp_defsubst transpos_ij_1 "0" " n"], simp
       vv j (1<sub ± -K m

 apply (simp add:Approximation1_5Tr3, blastapplyeeI2_ex
 apply (rule allI
        drule_tac<vals_nonequiv K  n) vv;
        frule_tac x = "(1r ±l Suc n}. n_val K (vv l) = vv l; i Suc n]
           value_less_eq[of "vv]
        rule Ring.npClose, assumption
         case_tacp add
        simp add:aGroup.ag_mOp_closed)
 apply (rule Ring.ring_tOp_closed, assumptionn1_5P"], simp , blast,
        rule Ring.npClose, sim add:Kronecker_delta_df,rulimpI, (erule conjE)+,
        simp add:Approximation1_5Tr3,
        frule sym, assumption)
done

lemma (in Corps) Approximation1_5Tr7:"[ j = j in"" ""]simp
      x  ==>
      vals_nonequiv K (Suc n)        simp add:cmp_def addtranspos_ij_1of
      (l. <forallapply
                ( j ((1^> ± -<^sub> )\bsupK m
< a r (x^ m)) = 0)))"
apply (induct_tac n,
       rule impI, erule conjE, simp add:nset_m_m[of "Suc 0"],
       frule vals_nonequiv_valuation[of "Suc add:transpos_ij_1 simpKronecker_delta_def
       frule Approximation1_5Tr6[ofrule, blast
apply (frulevals_nonequiv_valuationof" "" "0"], simp,
        val_1_nonzero[of "vv assumption+ simp add,
       assumption)
(** case n **) 
apply (rule impI x = j in bspec add,
        addtranspos_ij_2
       frule_tac n = n in
          assumption,
       erule exE,
       frule_tac"Suc"  Suc n)" in Approx
        [of _ "vv" "a" "x"], assumption+,
       frule_tac n = "Suc (Suc n)" in vals_nonequiv_valuation[of _ "vv"
        "0",s
       rule val_1_nonzero[of "vv 0" "a"], assump hin_ "carrierK  ((τ0 j
 \>
       simp add:nset_def)
apply (erule exE,
       subgoal_tac "\                     (<for>ja.vv ((🚫
         vv j ((1 n"  )
       ,
      simp add:nset_Suc
done   

lemma (in Corps) Approximation1_5P"<>vals K (Suc n) vv;
    n_val K (vv 0) = vv 0]j j]
    carrier K. ((vv 0 x = 1) \<j\>nset (Suc 0) (Su n). (vv j x) = 0))"
apply (frule vals_nonequiv_valuation[of "Suc n" "vv" "0"], simp) apply (
       frule n_val_surj[of "vv 0", erule bexE) apply (
       rename_tac aa) apply ( 
       cut_tac n = n in(in) Approximation1_5lbrakkvals_nonequiv K (Sucv
       \forall  vj<> <Longrightarrow
  apply (
       erule bexE,
       frule_tac a = aa andpproximation1_5Tr1" ""],
       assumption+,
       simp, assumption+)
apply (frule_tac a = aa and x = x in Approximation1_5Tr7[of _ "vv""]
       simp, assumption,
       simp, erule exE,
       cut_tac(vv)p_base
       cut_tac b = "Suc l" in max.cobounded2) 
       cut_tac n = inlessI,
       frule_tac x = l andapply(ruleApprozimation1_5P2,assumption+simp)
         less_le_trans, assumption+,
       thin_tac "Suc l ) Ostr"[ (Suc n) ]
       drule_tac a ="max 2 (Suc l)"in, simp
       drule_tac a = "max 2 (Suc l)" in   \forallm (Suc n)} - {l}  <(vv )Ostrowski_baseKvv Suc n )"
 apply (subgoal_tac "(1r ± -:Ostrowski_base_def,
carrierK
       blast,
       cut_tac field_is_ring, frule Ring.ring_is_ag[of "K" erule
        oup gnpClose
       rulelem_def
       simprulerowski_elem_def
       rule Ring.npClose, assumption+)
done

lemma K_gamma_hom:"ka (case_ " =0" sip ia:rnpsq
apply (simp add:Zset_def)
done

lemma transpos_eq:"
by (simp add:transpos_def)

lemma
      j ef
apply (simp addvals_nonequiv_def
 apply (frule conjunct1, fold vals_nonequiv_def)
 apply ( addvaluations_def conjI
 apply (rule allI, rule "0 <v 0 (1a x)
 apply (case_tac "ja =0,simp
        case_tac "j = 0", simp add:transpos_eq)
 apply (subst transpos_ij_1[of "0" "Suc n" "j"], simp, assumption+
        rule not_sym, assumption, simp)

 apply (case_tac "ja = j", simp) 
 apply (subst transpos_ij_2[of "0" "Suc n" "j"],(erule conjE)+
        simp add:vals_nonequiv_valuation)
 apply (case_tac,simp:transpos_eq
 apply (cut_tac x = ja in transpos_id_1[of 0 "Suc n" j], simp, assumption+,
        rule not_sym, assumption+)
 apply       simp:transpos_ij_2,
        (rule x = m  bspecsimp :nset_def
 apply (case_tac "j = 0", d)
        simp:vals_nonequiv_def
        cut_tac
 apply (frule_tac x = ja (in) Ostrowski_baseTr1vals_nonequiv K (Suc n) vv; l 
                       le (Suc n)}"], simp, simp, assumption+)
 apply (cut_tac l = ja in transpos_mem[of "0" "Suc n" "j"], simp, assumption+,
        simp, assumption,
       cut_tac l = l in transpos_mem[of "0" " n" "j"], sim, assumption+,
        simp, assumpt)
 apply (simp add:vals_nonequiv_def,
        simp, assumption, r not_sym, assumption)
done

definition
  Ostrowski_base :: "[_, nat ==>
                             ( (Suc n)} \<ongrightarrowgrightarrow
 Klam>j{h. h n}. (SOME x. xcarrier K
java.lang.NullPointerException

 
 App_base :: "[_, nat ==> K (Su n) vv]
 "App_base K vv n = (λj{h. h n}. -bsub>K vvv (Suc n)
^
 = 1) ield_is_ring, frule Rin.ngi_[of""]
  (* Approximation base. *)

lemma        Ostrowski_base_mem_1 "v""] aumpin,
      Ostrowski_base K vv (Suc n) j" "N"], assumption+,
apply rule,rename_tacl,
       simp add:Ostrowski_base_def,
       frule_tac j = l in transpos_vals_nonequiv[of n vv], simp,
       
apply (drule_tac a = "vv r" "-\<^bsubK vvS \esubK N
],
       rule someI2_ex, b simp)
done

lemma (in Corps) Ostrowski_base_mem:"vals_nonequiv K (Suc n) vv<Omega j^sumption
         g_inc_zero
by (rule allI, rule impIthin_tacr ±-K vv (Suc) j^)
       frule Ostrowski_base_hom[of "n" "vv"],
       simp add:funcset_mem deli_I

lemmaorps_[ 
       j forall  (Suc.<>m\longrightarrow 
by (simp add:Ostrowski_base_mem)

lemma (in Corps) Ostrowski_base_nonzero:"[vals_nonequiv K (Suc n) vv;
       j
apply(ipadOrkibed
       frule_tac j = j in transpos_vals_nonequiv[of "n" "vv"],
                      +,
       cut_tac Ostrowski[of "n"],
       drule_tac a = "vv 0 j

       rule
apply (thin_tac "
       erule conjE)
apply (rule_tac vv = "vv           (<>\^K vv (Suc n)

       assumption+)
done

lemma (in Corps) Ostrowski_base_pos:"[v m (ΩK vv (Suc n)

      j Suc n; ja assum simp add:less_ant_def, sip, simp,
apply (simp add:Ostrowski_base_def,
       frule_tac j = ja in transpos_vals_nonequiv[of "n" "vv"],
       assumption+,
       cut_tac Ostrowski[of "n"],
       drule_tac a = "vv 
apply (rule someI2_ex, blast,
       thin_tac "x
       simp add:Ostrowski_el, (erule conjE)+)
apply (case_tac "  \^ub^>== n choose i"
       simp add:nset_def, frule Suc_leI[of "0" "j"],
       frule_tac a = j in forall_spec, sim (i in)xai__1x <> car R ==>
apply (case_tac "j = 0", simp,
       frule_tac x = ja in bspec, simp add:nset_def,
       cut_tac ttra[of "0" "Suc
apply (frule_tacne\forall>j:). (x^in> carrier R")
       cut_tac transpos_id[of "0" "Suc n" "ja" "j"], simp+)
done

lemma (in Corps) App_base_hom:"<done  carrier R ==>±<bsup = 
       (Suc n). n_val K (vv j             ( (< i. (bsub(Suc i)x^nplusminus 1java.lang.NullPointerException
         del binomial_Suc_Suc,
apply (rule allI, rule impI,
       rename_tac k,
       subst App_base_def[ 🚫i
bsub>R<^esub> x^], assumption
 applycase_tac, simp:transpos_eq
        frule Approximation1_5P[of " (c ring_one,
         someI2_ex, blast, s)
 apply (frule_tac j = k idon
                 simp add:nset_def,
        frule_tac vv = "vv  carrier R ==>
 apply (simp add:cmp_def, subst transpos_ij_1 n"], simp+,
        subst transpos_ij_1[of 0 "Suc n" k], simapp(frule ttail_[of "x" "n"],
 apply (rule someI2_ex, blast, siimp del:nsum_subinomial_Suc_Suc npow_suc,
done

lemma (in Corps) Approzimation1_5P2:"[vals_nonequiv K (Suc n) vvlemmacut_tactac
           l2pply
          ==>"
apply (simp add:App_base_ ule a Grnme smpo ue l,remI
applyase_tacj = 0",simp:transpos_eq,
       rule someI2_ex,
       frule Approximation1_5P[of "n" "vv"], simp , blast,
       simp add:Kronecker_delta_def, rule impI, (erulerule aGroup, assumption, simp:ring_one
       frule_tac bspec add, assumption

apply ( j = j intranspos_vals_nonequivof] ,
       frule Approximation1_5P[of "n" "vv impI,
        add:cmp_def, simp add:transpos_ij_1of 00" n" j])
       
apply (simp add:cmp_def,
         case_tac "i = 0", simp add:transpos_eq,
         simp add:transapply (s(subst nsMulDist assumption, imp add::npCl,
         rule someI2_ex, blast,
         thin_tac "\existscarrier K.
            vv j x = 1 
        (erule conjE)+,
         drule_tac x=jin, simp:nset_def
         simp add:transpos_ij_2)

apply (simp add:Kronecker_delta_def,
       case_tac "i = j",  addtranspos_ij_1, rule, blast)

apply (simp, rule someI2_ex, blast,
       thin_tacexistscarrier K. vv(<><>0 j
 
                     (jajava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
       (erule conjE)+,
       drule_tac x = i in bspec, simp add:nset_def,
       cut_tac transpos_id[of 0 "Suc n" j i], simp+)
done

(*
lemma (in Corps) Approximation1_5:"\<lbrakk>vals_nonequiv K (Suc n) vv; 
  \<forall>j \<le> (Suc n)}. n_val K (vv j) = vv j\<rbrakk> \<Longrightarrow>
  \<xists>x\<in>{.h <>(Suc n)} \<rightarrow> carrier K. \<foralli <e (Suc n). \<forall>j \<le> (Suc n).java.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 115
                              ((vv i)  (x j) = \<delta>\<^bsub>i j\<^esub>)" *)


lemma (in Corps) Approximation1_5:"[
   ip lncagelr[ carrier K; 0
  x. ( <> v x \lev (n ×x)"
                              (vv)( )=\delta)"
apply (frule App_base_hom[of n vv], rule a (si add:value_of_zero,
 apply(s "( (Suc n).  (Suc n). 
                 (vv i) ((App_base y = " \><bsub>K
amin_le_plus[o """,assumption
        blast
 apply (rule (simpaddamin_def
 apply (rule Approzimation1_5P2, assumption+, simp        Ring[ofK]
done

lemma in) Ostrowski_baseTr0\lbrakk>nonequiv (Suc n) ]
   ==>
  (
apply (simp add:Ostrowski_base_def
       frule_tac j = l in transpos_vals_nonequiv[of< ( -r ±K (Sucesup>)))"
       cut_tac Ostrowski[of "n"],
       drule_tac a = "vv τ in forall_spec, assumption
apply (erule bexEcase_tac<>java.lang.NullPointerException
       unfold Ostrowski_elem_def, frule Ringring_one "K" simp_ro
       fold Ostrowski_elem_def, 
       conjIdef
apply       Ring
       rule someI2_exoal_tac K (λSuc n
Suc i
>K i
carrier (Vr K v",
        add:t
       rule someI2_ex, blast, simp)

apply (simp add:Ostrowski_elem_def,
       case_tac "l = 0", simp, simp add:transpos_eq,
       rule someI2_ex, blast,
       thin_tac "0 < vv 0 (1a x) 
                      (subst aGroup[of" "^>"], assumption+,
       rule ballI, simp add:nset_def)

apply (rule ball erule conjE,
       rule someI2_ex, blast,
       thin_tac "nset 0)Suc )  <  ((τ0 l
       rule

apply (case_tac "m = 0", simp,
       drule_tac x = l in bspec, simp add:nset_def,
       simpt2p
       drule_tac x = m in bspec, simp addaddv
       simp add:transpos_id"nsumK(\ambda<^sub>n\^u>C\^sbi<e>+ ×KK i
done

lemma (in Corps) Ostrowski_baseTr1:"[vals_nonequiv K (Suc n) vv; l  (Suc n)]
     ==> 0 < ((vv l) (1Suc nSuc i\^>K iesup"], assumption,
by (simp add:Ostrowsk)

lemma (in Corps) Ostrowski_baseTr2:"[ , rule)
        applycut_tac  0andj="v x<^b>K j\^ andk = "^Suc nSuc jKK j
        0 < ((vvin)
apply  Ostrowski_baseTr0 +) 
apply simp
done

lemma Nset_have_two:"j v xx] ass+,
apply (ul contrapos_pp, simp+,
       case_tac "j = Suc n", simp,
       drule_tac a = 0 in forall_spec, simp, arith)
 apply (drule_tac a = "Suc n" in forall_spec, simp, simp)
done

lemma (in orps) Ostrow:"[ Suc n;
       vals_nonequiv K (Suc n) vv]  \apply( delof_nat_0_less_iff)
                              1 "j an x1 = 0 an y1 = "ant"in
apply (cut_tac field_is_ring, frule Ri.ring_is_ag[of ""]
       rule contrapos_pp, simp+,
       frule Ostrowski_base_mem_1[of "n" "vvjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       frule.npCloseof"\Omega<K vv (Suc n)
       frule Ring.ring_one[of "K"],
       frule aGroup.ag_ al_nscal_of ]supo+
       frule aGroup.ag_pOp_closed[of "K" "1\       simpng
       assumption+) 
apply (frule  aGroup.ag_pOp_add_rse_tac,p
           "(Ωadm,sp,ipd:zz
        simp add:aGroup.ag_inc_zero, assumption+, (
        thin_tac "1java.lang.NullPointerException
 applyadd""\^>r" "-K vv (Suc n)<^>"])
 apply (simp add:aGroup.ag_l_inv1, simp add:aGroup.ag_r_zero aGroup.ag_l_zero)
  apply (subgoal_tacforallm  m 
                                 0 < (vv m assumption <j" th "(0 < j)=int 0<int
 apply (cut_tac Nset_have_two[of "j" "n"],
        erule bexE, drule_tac a = m in forall_spec, simp,
       thin_tac "(Ω
       frule_tac f = "vv m" in eq_elems_eq_val[of "1java.lang.NullPointerException
       _c "\^r=<Omega\^b v(cn<esu>^<^bsu>K N
 apply (frule_tac m = m in vals_nonequiv (1a (aa^)^<esup> \ineK
        assumption+,
        frule_tac v1 = "vv " andn NnvleprgHNs,
         of _ "assumption
        simp add:Ostrowski_base_nonzeroupimpRing
 apply (subgoal_tac "int N
        frule_tac x = "vv m ((Ωjava.lang.NullPointerException
        assumption, simp:less_ant_def, simp
        rule allI, rule impI, rule impI,
        rule Ostrowski_baseTr2, assumption
done

abbreviation
  CHOOSE :: "[nat, nat] ==> nat"  (
java.lang.NullPointerException

 (i Corps) ApproximationTr2:"[ carrier K; aa 0
java.lang.NullPointerException
  (cut_tac ring_one, frule npeSum2[of "1r" "x" "n"], assumption+,
 simp add:npOne, subgoal_tac "(j::nat). (x^"],
  (simp add:ring_l_one, rule allI, simp add:npClose)
 

  (in Ring) tail_of_expansion:"x carrier R ==> val_ v "aa"], assu+, erule exE, simp)
java.lang.NullPointerException
  (cut_tac ring_is_ag)
 frule asinfsu[ofx" "Suc n"],
 simp del:nsum_suc binomial_Suc_Suc npow_suc,
 thin_tac "(1 Ring.npClose[of K" "aa"], assu+,
  (subst aGroup.nsumTail[of R n "λi. \<^       frule
 rule allI, rule impI, rule nsClose, rule npClose, assumption)
  (cut_tac ring_one,
 simp del:nsum_suc binomial_Suc_Suc npow_suc add:aGroup.ag_l_zero)
 

  (in Ring) tail_of_expansion1lone
 (1r ± x)^ (Suc n) = x
  (frule tail_of_[of "x" "n"],
 simp del:nsum_suc binomial_Suc_Suc npow_suc,
 subgoal_tac "Suc n
Suc ix^
 cut_tac ring_one, cut_tac ring_is_ag)
  2 apply(simp add: nsClose npClose)
  (rule aGroup.ag_pOp_add_r[of "R" _ _ "1jj <>\r ±a (b j))))
java.lang.NullPointerException
 rule nsClose, rule npClose, assumption)
 (rule ring_tOp_closed, assumption+,
 rule aGroup.nsum_mem, assumption+, blast, simp add:ring_one)
  (subst nsumMulEleL[of "λi. ut_tac field_i, frule Ring.ring_is_ag[of "K"])
  (rule aGroup.nsum_ assumption, rule allI, rule impI, r nsClose,
 rule npClose, assumption, rule allI, rule impI,
 rule ring_tOp_closed, assumption+, rule nsClose, rule npClose,
 assumption)
  (rule aallI, rule impI)
  (subst nsMulDistrL, assumption, simp add:npClose,
 frule_tac n = j in n npClose[of x], simp add:ring_tOp_ommuof x]])
 

  (in Corps) nsum_in_VrTr:"valuation K v ==>[of K "b 0"], ssu,
 ( "K" "x 0" "-\^>a (b 0)"], assum+,
 0 \<le        _], a+,
  (induct_tac n)
 apply (rule impI, erule conjE, simp add:val_pos_mem_Vr)
  (afrule aGroup.ag_mOp_clof "K"],
 +)
 frule_tac x = "f (Suc n)" and y = "nsum K f n" in
 aGroup.ag_pOp_closed[of"VK v"],
 subst val_pos_mem_Vr[THEN sym, of "v"], assumption+,
 simp, simp, simp)
  (simp, subst Vr_pOp_f_pOp[of "v", THEN sym], assumption+,
 subst val_pos_mem_Vr[THEN sym, of v], assumption+,
 simp+)
  (subst aGroup.ag_pOp_commute, assumption+, simp add:val_pos_mem_Vr,
 assumption)
 

java.lang.NullPointerException
 j n. 0 subgoal_tac "{h. h e n}", simp,
  (simp add:nsum_in_VrTr)
 

  (in Corps) nsum_mem_in_Vr:"[valuation K v;
  n. (f j) j (v (f j)) ==>
 (nsum K f n) carrier (Vr K v)"
  (ru nsum_in_Vr)

  (in Co val_nscal:"[ carrier K; 0
 ==> v x , rule all, rule impI, simp,si)
  (cut_tac field_is_ring, induct_tac n, simp)
 (simp ad:value_of_zero,
 simp,
 frule_tac y = "n ×K
+,
 rule Ring.nsClose, assumption+)
  (simp add:amin_def,
 frule Ring.ring_is_ag[of K],
 frule_tac n = n in Ring.nsClose[of K x], assumption+,
 simp add:aGroup.ag_pOp_commute)
 

  (in Corps) ApproximationTr:"[_csd ssupo+, i,
 v x
  (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
 case_tac "x = 0psp
 simp, frule Ring.ring_one[of "K"], simp add:aGroup.a ruRinrgtlsd smtn ip,
 simp add:Ring.npOne, simp add:Ring.ring_l_one,simp add:aGroup.ag_r_inv1,
 subst Ring.tail_of_expansion1[of "K" "x"], assumption+,
 frule Ring.ring_one[of "K"])
  (subgoal_tac "(nsum K (λi. n
java.lang.NullPointerException
 assumption+,
 tacx=xandy "nsum KK (\lambdai. \<times\K i

 Ring.ring_tOp_closed[of "K"], assumption+,
java.lang.NullPointerException
 subst aGroup.ag_p_inv[of "K" "1r"], assumption+,
 subst aGroup.ag_pOp_assoc[THEN sym], assumption+,
 simp add:aGroup.ag_mOp_closed, rule aGroup.ag_mOp_closed, assumption+,
 delnilS_S ad:arupa__iv,sbsaGou.gleo
 assumption+,
 rule aGroup.ag_mOp_closed, (rule allI, rule impI)+

  (subst val_t2p[of v], assumption+) apply (
 simp add:val_pos_mem_Vr[THEN sym, of v
 "nsum K (λsimp ad:transp,
java.lang.NullPointerException
 "v x"], simp (in Corps) Ostrowski_ba:"[ (Suc n)]

  (rule nsum_mem_in_Vr[of v n "λi. n
 rule allI, rule impI) apply (rule Ring.nsClose, assumption+) apply (sip add:Ring.npC)

  (rule allI, rule impI)
  (cut_tac i = 0 and j = "v (x^)" and k = "v (×KK j
 in ae_rans
 apply (case_tac simp
 apply
 frule val_nonzero_z[of v x], assumption+,
 erule exE,
 cut_tac m1 = 0 and n1 = j in of_nat_less_iff[THEN sym],
 frule_tac a = "0 < j
 assumption, thin_tac "0 < j = "Suc n" i fora, simp, simp)
  (sm del: of_na)

  (frule_tac w1 = "int j" an x1 = 0 a y1 = "ant z" i
 asprod_pos_mono[THEN sym],
 simp only:asprod_n_0)

 apply(rule_tac x = "x^ and n = " in
 val_nscal_ge_selfTr[of v], assumption+,
 , simp add:val_exp_ring[THEN sym],
 frule val_nonzero_z[of "v" "x"], assumption+, contrapos_pp, simp,
 apply (case_tac j= 0",, simp)
 apply (subst asprod_amult, simp, simp add:a_z_z)
 (
 simp only:ant_0[THEN sym], simp only:ale_zle,
 cut_tac m1 = 0 and n1 = j in of_nat_less_iff[THEN sym])
  ( frule_tac a = "0<j ,
 assumption+, thin_tac "0 < jr" "-\ j^"],
 frule_tac z = "int 0" and z' = "int j" in zless_imp_zle,
 frule_tac i = "int 0" and j = "int j" and k = z in int_mult_le,
 assumption+, simp add:mult.commute )
 apply assumption
 

  (in Corps) ApproximationTr0:"aa r ± -<O>s N
= 0")
 (1 -K N
K N carrier K"
  (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
 ruleln.nCoe supin+,
 rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
 rule aGroup.ag_mOp_clos, assump+, rule Ring.npClose, assump+)
 

  (in Corps) ApproximationTr1:"aa carrier K ==> "\<Omega\ n)\^>) j^\^bsup>K N -K vv (Suc n)
K N
carrier K",
 1 -r ±a (aa^)^
 cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
 frule ApproximationTr0[of aa N],
 frule Ring.ring_one[of "K"], rule aGroup.ag_pOp_closed, assumption+,
 rule aGroup.ag_mOp_closed, assumption+) assumption
 

  (in Corps) ApproximationTr2:"[ K v; aa 0;
 0
 cut_tac l_is_rn,fue Rigrn_sa[f"",
 case_tac "N = 0",
 frule val_nonzero_z[of v "aa"], assumption+, erule exE, simp)
 apply(frule Ring.ring_one[of "K"], simp add:aGroup.ag_r_inv1,
 simp add:value_of_zero)

  (frule_tac n = N in Ring.npClose[of "K" "aa"], assumption+,
java.lang.NullPointerException
 rule aGroup.ag_mOp_closed, assumption+, simp add:val_minus_eq,
 subst val_exp_ring[THEN sym, of v], assumption+,
 simp add:asprod_pos_pos)
  (simp add:val_minus_eq, simp add:val_exp_ring[THEN sym])
 

  (in Corps) eSum_tr:"
  (inRing) exansso_of_sum1:"\inrier R \<ongrightarrow Cx^ n"
 ( j (bj) \in c K) n
 ( j n} -{l}). (g j = (x j) r (1r \<lusminus 
 g l = (xl) ^sub>r (-a (b l))
  (nsum K (λj
 nsum K g n"
  (cut_tac field_is_, frule Ring.ring_i[of "K"])
  (induct_tac n)
 apply (simp, rule impI, (erule conjE)+,
 simp, frule Ring.ring_one[of "K"], subst Ring.ring_distrib1,
 assumption+,
 mpad:aroup.agmOp_clos, ip add:Rinringin_rone,
 frule aGroup.ag_mOp_closed[of K "b 0"], assumption+,
 frule Ring.ring_tOp_closed[of "K" "x 0" "-r ±R (Suc n)
e R (λi. ×R (Suc n)")
 subst aGr.ag_pOp_commute[of "K" "x 0" _], assumption+,
 subst a aGroup.ag_pOp_as, assumption+,
  (cut_tac ring_one,
 +)
 apply (simp add:aGroup.a
  (rule impI, (erule conjE)+)
 apply (subgoal_tac "j (Suc n). ((x j) \<cdot\(Suc n)
C×x^ 1"
  (case_tac "l = Suc n", simp)
 apply (subgoal_tac "Σ carrier K",
 subgoal_tac "{h. h ring_is_a)
 subgoal_tac " add nsClose npClose)
 frule_tac f = "λu. if u .ag_pOp_add_r[of"R" _" _ _"1], assumption+,
 undefined" and n = n in aGroup.nsum_eq[of "K" _ _ "g"])
 apply (rule allI, rule impI, simp,
 rule allI, simp, rule allI, rule impI, simp, simp)

 apply (ct_tac a ==" Sc n r (1 - -and
 b = "x (Suc n) , rule allI, rule impI, rule nsClose,
 c = "Σrule npCnpClose, assumption, rule allI, rule impI,
 apply (rule aGroup.ag_pOp_closed, assumption+,
 rule Ring.ring_tOp_closed, assumption+, simp,
 rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
 rule aGroup.ag_mOp_closed, assumption, simp,
 rule aGroup.ag_mOp_closed, assumption, simp,
 rule Ring.ring_tOp_closed, assumption+, simp,
 rule aGroup.ag_mOp_closed, assumption+, simp, assumption)

 apply (subst Ring.ring_distrib1, assumption+, simp, simp add:Ring.rin,
 simp add:aGroup.ag_mOp_closed,
 simp add:Ring.ring_r_one) apply (
 frule_tac x = "x (Suc n)" and y = "x (Suc n) v ==>
 aGroup.ag_pOp_commute [of "K"], simp,
 simp add:Ring.ring_tOp_closed aGroup.ag_mOp_closed,
 simp) apply (
 subst aGroup.ag_pOp_assoc[of "K"], assumption+,
 rule Ring.ring_tOp_closed, assumption+, simp,
 (simp add:aGroup.ag_mOp_closed)+,
 subst aGroup.ag_r_inv1, assumption+, simp,

 simp add:Ring.ring_tOp_closed aGroup.ag_mOp_closed, simp,
 rotate_tac -1, drule sym, simp) apply (
 thin_tac "Σag_pOp_close[f ""Vr K v"],
 Σe K g n ± (x (Suc n) r (1r ± -a (b (Suc n))) ± -a (x (Suc n)))")
 apply (subst aGroup.ag_pOp_assoc[THEN sym], assumption+,
 rule Ring.ring_tOp_closed, assumption+, simp,
 subst val val_pos_mem_Vr[THEN sym, of "v"], assumption+,
 rule a aGroup.ag_mOp_closed, assumption+, simp,
 rule aGroup.ag_mOp_closed, assumption+, simp, simp,
 simp, rule equalityI, rule subsetI, simp, rule subsetI, simp)
 apply (rule aGroup.nsum_mem, assumption+,
 rule allI, rule impI, simp)
 
 apply (rule allI, rule impI)
 apply (case_tac "j = l", simp,
 rule Ring.ring_tOp_closed, assumption, simp,
  aGroup.ag_pOpclo, assump+, simp add:Ring.ring_,
 rule aGroup.ag_mOp_closed, assumption, simp, simp,
 rule Ring.ring_tOp_closed, assumption, simp,
 rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
         rule aGroup.ag_mOp_closed, assumption, simp, simp) (* end defer *)

 apply (subst aGroupsubst aGroupag_pOp_commute, assumption simp addval_pos_mem_Vr,
        rule aGroup.nsum_mem)
        rule allI, simp, rule
        rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
        rule aGroup.ag_mOp_closed, assumption, simp,
        rule aGroup.ag_mOp_closed, assumption, simp,
        subst aGroup.ag_pOp_commute[of K _ java.lang.NullPointerException
        rule Ring.ring_tOp_closed, assumption, simp,
        rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one)
 apply (rule aGrou in C) nsummem"[
        rule aGroup, assumption,
        subst aGroup.ag_pOp_assoc[THEN sym], assumption K f nn
        rule aGroup.nsum_mem, assumption+,
        rule allI, rule impI,,
        rule aGroup.ag_mOp_closed, assumption, simp, 
        rule Ring.ring_tOp_closed, simp
         rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
         rule aGroup.ag_mOp_closed, assumption, simp)
  apply (subgoal_tac 
         else undefined) n ±a (x l) =
         ΣnsCloseut+)
         -\<^a ,
         rule aGroup.ag_pOp_addr[of [of K _ _ "\^suba ( )],assumption,
         rule n=n in Ring[of]assumption
         rule allI add.ag_pOp_commute
         rule aGroup.nsum_mem, assumption+,
         rule, rule, simp
         rule aGroupx<le r ±a ((1 x)^\^bsup )esup>)))"
          (ut_tac field_is_ring, frule Rin.ring_[of "K"]
         rule allI, rule impI, simp, rule allI, rule impI)
   apply simp
   apply (rule allI, rule impI, simp)
done

lemma (in Corps) eSum_minus_x:""lbrakk>\<forall 
       j
       ({h. h r ±a (b j)));
java.lang.NullPointerException
       (nK (\lambdaj\inh. h n}. (x j) r <> -a (x l)) =
                        nsum K g n"
by (cut_tac[of"""" ""p

emma> carrier R ==>
 (1,
apply (cut_tac ring_one, cut_tac ring_is_ag,
       frulep_closedption
       frule aGroup.ag_pOp_closed[of "R" java.lang.NullPointerException

apply (induct_tac n)
 apply (simp add:ring_r_one ring_l_one)
 apply (simp del:npow_suc,
        frule_tac n =" in[of]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
        subst ring_distrib1, assumption+)
 apply (rule aGroup.nsum_meme,eimpI
        simp add:npClose, rule npClose, assumption+,
        simp del:npow_suc,
        thin_tac "(1r
 apply (subst ring_distrib2, assumption+,
        simp del:npow_suc add:ring_l_one,
        substri, rule aGroup.ag_mOp_clo, assumption+)
        rule_tac x = "x^:npow_suc
        rule ring_tOp_closed, rule aGroup.ag_mOp_closed, assumption+)
 apply (subst aGroup.ag_l_inv1, assumption x ="\sub>a x"and^<bsup" in ring_tOp_closed,
        add:aGroup.ag_r_zero,
        frule_tac x = "- "^\^>R (Suc n)

        assumption+)
 apply (rule aGroup.ag_pOp_add_l[of R _ _ "1r"], assumption+,
        rule aGroup.ag_mOp_closed, assumption+,
        rule npClose, assumption+,
        subst ring_inv1_1[THEN sym, of x], assumption,
        rule npClose, assumption,
        simp,
        subst ring_tOp_commute[of x], assumption+, simp)
done

lemma
   (nsum K (npow K x) n)
apply (frule Vr[of v])
apply (induct_tac n)
  simp
 apply (frule Ring.ring_one[of "Vr K v"])
 apply (simp add:Vr_1_f_1)
apply (simp del:npow_suc)
 apply (frule Ring.ring_is_ag[of "Vr K v"])

 apply (subst Vr_pOp_f_pOp[THEN sym, of v], assumption+)
 apply (subst Vr_exp_f_exp[THEN sym, of v], assumption+)
 apply (rule Ring.npClose[of "Vr K v"], assumption+)
 apply (ru aGroup.ag_pOp_closed[of " ",ass+)
 apply (subst Vr_exp_f_exp[THEN sym, of v], assumption+)
 apply (rule Ring.npClose[of "Vrsubst[THEN, of assumption
done

lemma (in Corps) val_1mx_pos Ring[ofassumption)
         0 < (v (1java.lang.NullPointerException
apply (cut_tac field_is_ring, frule Ring.ring_one[of "K"], 
       frule Ring.[of K])
 apply (frule aGroup.ag_mOp_closed[of "K" "x"], assumption+)
 apply (frule aGroup.ag_pOp_closed[of "K" "1r ±a x))]=0
 apply (frule aGroup.ag_mOp_closed[of "K" "1java.lang.NullPointerException
 apply (cut_tac x = x and y = "1ng_gof"")
        eq_elems_eq_val)
apply (subst aGroup.ag_p_inv, assumption+,
        aGroup.ag_pOp_assoc[THEN s], assumption+,
       rule aGroup.ag_mOp_closed, assumption+,
       subst aGroup.ag_inv_inv, assumption+,
       subst aGroup.ag_r_inv1, assumption+,
       subst aGroup.ag_l_zero, assumption+,
       (simp add:aGroup.ag_inv_inv)+,
       frule value_less_eq[of v "1r" "-\apply( aGroup, assumption
        assumptionjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 apply (simp add:val_minus_eq value_of_one,
        simp add:value_of_one)
done 

lemma (in Corps) val_1mx_pow:"[^>r "-r ±a x)"],
       0 < (v (1r ±
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (subst Ring.one_m_x_times[THEN sym, of K x n], assumption+)
 apply (frule Ring.ring_one[of "K"],
        frule
        subst val_pos_mem_Vr[THENsm, sutn,
        frule val_1mx_pos[ofl -\^> )\rbrakk><> 0<( \^ubr\plusminus^> x^)"
        simp)

y,on
        rule aGroup.ag_pOp_closed, assumptionrule
       pdroupaddmem_f_mem
        frule val_pos_mem_Vr
        simp add: l_1mx_pos",a+,
 apply(sim)
       simp add:aadd_0_l, simp add:aadd_commute)
done

lemma (in Corps) ApproximationTr3:"[vals_nonequiv K (Suc n) vv; 
      :.ag_mOp_closed add,
     ,of nsum,
        (x k)  :Vr_mem_f_mem)
        (Suc -java.lang.NullPointerException
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
 apply (frule_tac vals_nonequiv_valuation[of
apply_c<orallN
 -a ((Ω  carrier K; j  ==>
 Σe K (λl( n)}. (fl noteq j then (x l)  1±>a (1^>r ±
 ((\OmegabsubK vv (Suc n)
K N^)^ else (x j) r (1a (1java.lang.NullPointerException
        -K vv (Suc n\^>) l)^\bsupK N<)^ 1java.lang.NullPointerException
 apply (simp del:nsum_suc)
apply (thin_tac "(_c🚫r (1a (1
 -a ((Ω>K vv (Su n))^) (Suc n) ±a (x j) =
prefer 2 apply (rule allI)
 apply (rule eSum_minus_x, assumption+)
 apply (rule allI, rule impI) apply (rule ApproximationTr0)
:Ostrowski_base_mem)app assumption
 apply (rule ballI, simp)
  simp
 apply (frule Ring.ring_one[of "K"])
 apply (cut_tac aa = "<^sub(λ{h. h  -r ±
                                               
 apply (simp add:Ostrowski_base_mem)
 apply (subst aGroup.ag_pOp_assoc, assumption+)
 apply (rule aGroup.ag_mOp_closed, assumption+)+
 apply (subst aGroup.ag_pOp_commute[of "K" _ java.lang.NullPointerException
 apply (rule aGroup.ag_mOp_closed, assumption+)+

 apply (subs aGroup.ag_pOp_assoc[THEN s], assumption+)
 apply (rule aGroup.ag_mOp, assumption+)+
 apply (simp add:aGroup.ag_r_inv1)
 apply (subst aGroup.ag_l_zero, assumption+) apply (simp add:aGroup.ag_mOp_closed)
  s (* subgoal 2 done**)

 apply (subgoal_tac "L.  "K" _-<subr"], assumption+)
java.lang.NullPointerException

(*
 apply (subgoal_tac "L. N. L < N  (an
  (x j)<>K (1K  -K + (Omega l)^ N)^ java.lang.NullPointerException
+ rule, assumption
 apply (erule exE)
 apply (subgoal_tac "N. L < N ( aGro.ag_l_zero, assu+) apply (simp add:aGroup.ag_Op_
  ((an m) ((vv j) (eΣ K (λ
(1K - <sub-<sK ((Ω l)N)^ <spN le( j) \cdot<^>K (1K +K -K
(1K +K - (Suc n). (an m) (λ{h. h j then (x l) r (1<s> (1 -K vv (Suc n)
)^ elsej)\cdott<sb>r1^s>r\plusminus -K vv (Suc n)
) l)^ N)^ Na 1r))) ja))")
apply blast
*)

apply (erule exE)
apply (rename_tac M)
 apply (subgoal_tac "N. M < (N::nat)
   (an m) (vv j (Σe K (λl{h. h (Suc n)}. (if l j then
   (x l) r (1r ± -a (1r ± -a ((Ω vv (Suc n)) l)^ N)^ N)
   else (x j) r (1r ± -a (1r ± -a ((Ω vv (Suc n)) l)^ N)^ N
   ± -a 1r))) (Suc n)))")
 apply blast
 apply (rule allI, rule impI)  
apply (drule_tac a = N in forall_spec, assumption)
 apply (rule value_ge_add[of "vv j" "Suc n" _ "an m"], assumption+)
 
apply (rule allI, rule impI)
 apply (frule Ring.ring_one[of "K"])
 apply (case_tac "ja = j", simp)
 apply (rule Ring.ring_tOp_closed, assumption+, simp)
 apply (ruleNa (1r ± -a ((Ω vv (Suc n)) j)^ N)^ N)) (Suc n)) ± -a (x j)))))")
 apply (rule aGroup.ag_mOp_closed, assumption+)
 apply (rule Ring.npClose, assumption)
 apply (rule aGroup.ag_pOp_closed, assumption+)
 apply (rule aGroup.ag_mOp_closed, assumption)
 apply (rule Ring.npClose, assumption)
 apply (simp add:Ostrowski_base_mem)
 apply (rule aGroup.ag_mOp_closed, assumption+)

apply simp
 apply (rule Ring.ring_tOp_closed, assumption+, simp)
 apply (rule aGroup.ag_pOp_closed, assumption+)+
 apply (rule aGroup.ag_mOp_closed, assumption+)
 apply (rule Ring.npClose, assumption)
 apply (rule aGroup.ag_pOp_closed, assumption+)
 apply (rule aGroup.ag_mOp_closed, assumption)
 apply (rule Ring.npClose, assumption)
 apply (simp add:Ostrowski_base_mem)

apply assumption

 apply (subgoal_tac "N. ja  (Suc n). (1r ± -a (1r ± -a 
 ((Ω vv (Suc n)) ja)^ N)^ N carrier K")
 apply (subgoal_tac "N. (1r ± -a (1r ± -a ((Ω vv (Suc n)) j)^ N)^ N
                         ± -a 1r carrier K")
 apply (simp add:val_t2p)
 apply (cut_tac multi_inequalityTr0[of "Suc n" "(vv j)  x" "m"])
 apply (subgoal_tac "ja  (Suc n). (vv j  x) ja  - ", simp)
 apply (erule exE)
 apply (subgoal_tac "N. L < N  (ja  (Suc n). (ja  j 
an m  vv j (x ja) + (vv j (1r ± -a (1r ± -a ((Ω vv (Suc n)) ja)^ N)^ N)))
  (ja = j  (an m)  vv j (x j) +  (vv j (1r ± -a (1r ± 
  -a ((Ω vv (Suc n)) j)^ N)^ N ± -a (1r)))))")
 apply blast
 apply (rule allI, rule impI)+

apply (case_tac "ja = j", simp)
 apply (thin_tac "N. 1r ± -a (1r ± -a (Ω vv (Suc n)) j^ N)^ N ± -a 1r  
        carrier K")
 apply (thin_tac "lSuc n. x l  carrier K")
 apply (drule_tac x = N in spec)
 apply (drule_tac a = j in forall_spec, assumption,
        thin_tac "jaSuc n. 1r ± -a (1r ± -a (Ω vv (Suc n)) ja^ N)^ N 
         carrier K")
apply (cut_tac N = N in ApproximationTr0 [of " vv (Suc n)) j"])
 apply (simp add:Ostrowski_base_mem)
 apply (frule Ring.ring_one[of "K"], frule aGroup.ag_mOp_closed[of "K" "1r"],
         assumption) apply (
        frule_tac x = "(1r ± -a ((Ω vv (Suc n)) j)^ N)^ N" in
        aGroup.ag_mOp_closed[of "K"], assumption+)
 apply (simp only:aGroup.ag_pOp_assoc)
 apply (simp only:aGroup.ag_pOp_commute[of "K" _ "-a 1r"])
 apply (simp only:aGroup.ag_pOp_assoc[THEN sym])
 apply (simp add:aGroup.ag_r_inv1)
 apply (simp add:aGroup.ag_l_zero) apply (simp only:val_minus_eq)
  apply (thin_tac "(1r ±-<^sub(Ω<bsubK vv (SucK N
K N
 
         thin_tac "-a (1\<^sub>e K g n ±<^ub>r ±a (b (Suc n))) ±a (x (Suc n)))")
 apply (subst val_exp_ring[THEN sym, of "vv j"], assumption+)
  apply (rule aGroup.ag_pOp_closed[ofng ssumption
  apply (rule aGrouppg_pOp_closedpadde,
  apply (rule Ringrulelosed
 ly_ow_not_onesimp
 apply (drule_tac a = N in forall_spec, assumption) 
 apply (drule_tac a = j in forall_spec, assumption) 
 apply (frule Ostrowski_baseTr1[of "n"
 apply (frule_tac n = "N - pply (rule alI,rule ip)
pddsrowsi_ase_mm) apppl ssumpion
  rule RiRing.ingtp_cosed,asupto, smp,
 apply hinta "0 <vv1\^ub>r <> K vv (Suc n)

 pply j (1^a ((Ω vv (Suc n)) j)^ N)" and N = N in
        asprod_ge) apply assumption apply simp
 apply (cut_tac x = "an N" and y = "int N *a vv j 1\^sub\plusminus -<suba ((Ωn)<esub^" in aadd_le_mono[of _ _ "vv j (x j)"], assumption)
 apply (simp add:aadd_commute)

apply simp
apply (frule_tac aa = "(          aGroup, assumption simp add.ring_one

   apply (simp add:Ostrowski_base_mem)
   apply (rule (subst.ag_pOp_assocassumption+java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
applyfrule_tacl=ja Ostrowski_baseTr0 """],asumpio+,
       erule rule aGro.ag_mp_cloe, asumpio simp
 e_tac-1ful_tca= in forall_spec)appy ssumpton
 ply ful_ta x= nbsp, imp
lyaless_imp_lepbat
  rl Gpamp_oe supin+,ip
        drule_tac a = N in forall_spec, assumption)
 apply (rotate_tac -2,
        drule_tac a = ja in forall_spec, assumption) apply (
        drule_tac a = ja in forall_spec, assumption)
 apply (frule_tac l = ja in Ostrowski_baseTr0[of "n" "vv"], assumption+)
 apply (erule conjE, rotate_tac -1,
        frule_tac a = j in forall_spec, assumption+)
  plytin_c "vv) ")
 apply (cut_tac b = "vv j ((Ω<^  applyr 1<ubr ± -a (b a)) 
 apply simp apply simp
 apply (frule_tac x = "an N" and y = "int N *plusminus - )=
        "vv ja)"in aadd_l)
 apply (frule_tac x = "int-<subxl" s,
     1<s>r ± -r ±a ((Ω>K vv (Su n)
K N
K N

      in aadd_le_mono)
 apply (frule_tac i = "an N + vv j (x ja)" and
       j = "int N *a vv llI ,imp
       k = java.lang.NullPointerException
          vv j (x ja)" in ale_trans, assumption+)
 apply (subst aadd_commute)
 apply (frule_tac x = "an m" and y = "vv j (x ja) + an N" in aless_imp_le)
 apply (rule_tac j = "vv j (x ja) + an N" in ale_transimp
                  assumption) 
 apply (simp add:aadd_commute)
 apply (rule allI, rule impI, subst comp_def)
 apply (frule_tac a = jain forall_spec, assumption)
 apply (frule_tacj  carrier K; l n; 
 apply (simp add:aug_inf_def)

apply (rule allI) 
  apply (rule aGroup.ag_pOp_closed, assumption+) l  (xl) 🚫r (-a (b l)) ] ==>
 apply ( aGroupag_mOp_closed, assumption Ring, assumptionjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78

apply ((rule allI)+, rule impI)
apply (rule_tac aa = "(ΩK vv (Suc n)
in ApproximationTr1
       simp add:Ostrowski_base_mem)
done
 
definition
   :: "[_ , nat, nat ==> ant, nat ==>
            (nat ==> nat)"   (r" "- ], assumption+)
 "Ψ n)
 (an m) (vv j (Σe K (λ:npow_suc,
 (1r, ru allI, rule impI,,
 (** Approximation lower bound **)


lemma (in Corpsp_LB; 
      l (Suc (subst, assumption+,
        N. (ΨpOp_assocTr43 R] +,
  (vv j (Σe K (<lambda{ (Sucr ±a (1java.lang.NullPointerException
  -java.lang.NullPointerException
applyuleofn""" x" """m",
                               assumption+)
applypelum_suclb_defrulejava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
apply
apply (rule impI) apply blast
done

lemma (in Corps) ApplicationTr4Vr_pOp_f_pOpmption
 
 java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  (vv{.  \le (Suc n)}. (x j) r (1\^>r\plusminus -<>a (1
  -a ((Ω ± -<> x))] java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
apply (subgoal_tac java.lang.NullPointerException
  \j (Suc n). (an m)
  (vv j (Σe K (λjh\le> (Suc n)}.(x j) r (1-<sub>a (1🚫
  -K vv (Suc n)
K N)) (Su )\plusminussa (x j))))")
apply blast
 apply (rule allI, rule)
apply (frule_tacsubst., assumption
       simpassumption
       subgoal_tac "(Ψa.ag_mOp_closed assumption+,
apply (frule_tac l = j and n = "Suc n" and f = "Ψ (Suc n) vv x m
       frule_tac x = "(Ψsim ad:aGrou.ag_inv_inv)+,
       y = "m_max (Suc n) (Ψ (Suc n) vv x m  z = Ninle_less_trans
       assumption+)
done

theorem (in
 (Sucn)xj<> er  ==>
<exists0r ± -v<^>ra x^)"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (subgoal_tac "substne_m_x_timesssumption
 apply (erulem_in_Vrof
 apply (rename_tac M)
 apply (subgoal_tac "j
java.lang.NullPointerException
java.lang.NullPointerException
 apply (subgoal_tac "Σ"v1a x)"],
 -, add:aadd_com)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 apply (rule roup.sum_mem[f" "n",+)
 apply (rule allI, rule impI, simpL.( ( m) vv j ((Σ{h. h \le n} 
 apply (rule Ring.ring_tOp_closed, assumption+, simp,
        xk \cdotr ±a ((1a (((Ω<>Kvv n\^sub) k^<>K N
K N


 apply (subgoal_tac "M < Suc M"apply blast
 apply simp
  rule [of x],+)
 apply simp
done

definition
  distinct_pds \Rightarrow ('b ==> 
  "distinct_pdsKnP\longleftrightarrow ( \bsub <eu> \>
          ( n. n. l Pl

 (** pds --- prime divisors **)
lemma (in Corps) distinct_pds_restriction:"[inus_xsumption
       distinct_pds K n P"
apply (simp add:distinct_pds_def)
done

lemma (in Corps) ring_n_distinct_prime_divisors:"distinct_pds  <Longrightarrow
        (Sr. x (<>j<>n. 0 \^> K(P )esub x))})"
apply add:distinct_) apply (erule conjE)
apply (cut_tac field_is_ring)
apply (rule Ring.Sr_ring, assumption+)
apply (subst sr_def)
 apply (rule conjI)
 apply (rule subsetI) apply simp
 apply (rule conjI)
 apply (simp add:Ring.ring_one)
apply (rule allI, rule impI)
 apply (cut_tac P = "P j" in representative_of_pd_valuation, simp,
        simpoal_t "\exists\all <<longrightarrow
apply (rule ballI)+
 apply simp
 apply (frule Ring.ring_is_ag(al_tacL.  ( m)  (λlthen (x l) K (1K-K+<sub-\^>K(<>\K KN)
 apply (frule_tac x y inaGroupag_mOp_closed[ "K"]ssumption
 apply (frule_tac x = x and y = java.lang.NullPointerException
        assumption+)
 apply simp
 apply (rule conjI)
 apply (rule allI, rule impI)
 apply (rotate_tac -4, frule_tac a = j in foralmptin
         -3,
        drule_tac a = j in forall_spec, assumption)
 apply (cut_tac P = "P j" in representative_of_pd_valuation, simp)
 apply (frule_tac v = "ν. M < (N::nat \ongrightarrow
        assumption+) 
 apply (simp add:val_minus_eq)
 apply (frule_tac x (<\bsub\^sub and y "<nu\^bsu>K (P j)
")
        apply simp
 apply (rule_tac j = java.lang.NullPointerException
 apply (simp add:Ring.ring_tOp_closed)
 
apply (rule all, rule impI,
       cut_tac P = "blast
       subst val_t2p [where v=
       rule aadd_two_pos, simp+)
done

lemma (i Co) distinct_pds_valuation:"lbrakk  (Suc n);
       distinct_pds K (Suc n) P] ==>  valuation aGroup, assumption+
 apply (rule_tac =" "nepresentative_of_pd_valuation
 pds_def
done

lemma (in Corps) distinct_pds_valuation1:"[
java.lang.NullPointerException
apply (rule distinct_pds_valuation[of "j" "n - Suc 0" "P"])
apply simp+
doneapplyleR.loe ssui)

lemma( or) ditntpsauto2🚫
          tion (<nu>\^b (( )<^esub)
apply (case_tac"n=0",
       simp add:distinct_pds_def,
       subgoal_tac "0 
       simp n"(vv jj)
       )
 
 apply (simp add:distinct_pds_valuation1[of "n"])
done

definition
  ring_n_pd :: "[(ing_scheme ('b <ghtarrowtarrow)^>-r)))))")
                             nat ] ==> ('b, 'm) R
java.lang.NullPointerException
  O^> P n
carrier K
           (N. 1\<>r(a j^^±a 1\^>r
  applya\foralll<> n. x l

lemma (in Corps) rthin_ta" Suc n. 1a (1a) ja\<^>KK N

 imp add:ring_p_def,sip add:ring_n_isnctt_pri_divisor

  (in Corps) ring_n_pd_Suc:"distinct_pds K (Suc n) P ==>
 carrier (O"K"]ruul Gopagmp_closd[f"K" "1\^r"],
  (rule subsetI)
 apply (simp add:ring_n_pd_def Sr_def)
 

  (s only:aGroup.ag_pOp_commute[of "K" __ "r])
 y K P n
x ±(O
  (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) ring_n_pd_tOp_K_tOp:"[distinK n P; x \in>carr (O);
 y carr thin_t "-r ±a (Ω>K vv (Suc n)
K N
K N\<^esup 
  (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) ring_n_eSum_K_eSumTr:
 (
  (induct_tac m)
 apply (rule impI, simp)

 apply (rule impI, simp,
 subst ring_n_pd_pOp_K_pOp, assumption+,
 frule_tac n = n in rin[f"n""vv" j"],ass+)
 frule_tac Ring.ring_is_ag, drule sym, simp)
 apply (rule aGroup.nsum_mem, assumption+, simp+)
 

  (in Corps) ring_n_eSum_K_eSum:"[distinct_pds K n P;
  m. f j K P n
==>K P n= sm K f"
  (simp add:ring_n_eSum_K_eSumTr)
 

  (in Corps) ideal_eSum_closed:"[K P n
 ) apply assumption simp
  (frule ring_n_pd[of "n" "P"]) thm Ring.ideal_nsum_closed
 apply (frule_tac n = m in
 Ring.ideal_nsum_closed[of "(O P n
 apply (subst ring_n_eSum_K_eSum [THEN sym, of n P m f], assumption+,
 rule allI, simp add:Ring.ideal_subset)
 apply assumption
 

 
 prime_n_pd :: "[_, nat ==> ('b ==> ant) set,
 trowski_baseTr0[of "n" "vv"][of "n" "vv"], assumption+,
 ( a = jin forall_spec) appassum
 "P P n j = {x. x blas

  (in Corps) zero_in_ring_drule_tac a = N in forall_spec, assumption)
 0O P n) apply (
  (simp add:ring_n_pd_def Sr_def))
 

 (in Corp one_in:"distinct_pds K n P ==>
 1rO P n - ")
  (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) mem_ring_n_pd_mem_K:"[distinct_pds K n P; x simp apply simp
 ==> x y = "int N *K vv (Suc n)

  (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) ring_n_tOp_K_tOp:"[ carrier (O;
java.lang.NullPointerException
  (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) ring_n_exp_K_exp:"[distinct_pds K n P; x carrier (O"vj (1^sub>r \<plusminus a (1 -\ ja)^^ N
 ==> x^ m
  (frule ring_n_pd[of "n" "P"])
  (induct_tac m) apply simp
 apply (simp add:one_in_assumption)

  simp
 apply (frule_ta n = na in Ring.npClose[of "O P n
"x], assumpin)
 apply (simp add:ring_n_tOp_K_tOp)
 

  (in Corpa (sip add:aug_ininf_def)
java.lang.NullPointerException
  (sust rime_ideal_def)
 apply (rule conjI)
 apply (simp add:ideal_def)
 apply apply (le Gop.ag_mOpclosed, asuto, ue Rigrgoe,suptio)
 apply (rule aGroup.asubg_test)
 apply (frule ring_n_pd[of "n" "P"], simp add:Ring.ring_is_ag)
 apply (rule subsetI, simp add:prime_n_pd_def)
 apply (pply ((subgoal_tac "0O P n Pj")
 apply blast
 
 apply (simp add:zero_in_ring_n_pd_zero_K)
 apply (simp add:prime_n_pd_def)
 apply (simp add: ring_n_pd_def Sr_def)
 t_tac field_is_ring, simp add:Ring.ring_zero)
 apply (rule conjI) apply (rule allI, rule impI)
 apply (cut_tac P = "P ja" in representav__pvlao,
 simp add:distinct_pds_def, simp add:value_of_zero)
 apply (cut_tac P = "P j" in representative_of_pd_valuation,
 simp add:distinct_pds_def, simp add:value_of_zero)
 apply (simp add:[THEN sym]

 apply (rule ballI)+
 apply (simp add:prime_n_ apply (rule onE+
 apply (frule ring_n_pd [of "n" "P"], frule Ring(** Approx
java.lang.NullPointerException
 apply (simp add:aGroup.ag_pOp_closed)
 apply (thin_tac "Ring (Oa:"[;
  (simp ad add:ring_n_pddef Sr)
 apply (erule conjE)+
 apply (cut_tac v = "ν>K (P j)\j)\<^>"
 amin_le_plus)
 apply (ru (rule_tac P = "P j" in representative_of_pd_valuation,
 simp add:distinct_pds_def)
 apply assumption+
 apply (cut_tac P = "P j" in representative_of_pd_valuation)
 apply (simp add:distinct_pds_def)
 apply (frule_tac x = "(ν (P j)nsum_s add:app_lb_def) apply (ul al)
 amin_gt[of "0"])
 apply (simp add:val_minus_eq)

  (frule_tac y = "amin ((ν (P j)) a) ((ν
 z = "(νK (P j)
a±a b)" in aless_le_trans[of "0"], assumption+)

  (rule ballI)+
 apply (frule ring_n_pd [of "n" "P"])
 apply (frule_tac x = rand y x in Ring.r.ring_tOp_closed[of "O],
 assumption+)
 apply (simp add:prime_n_pd_def)
 apply (cut_tac P = "P j" in representative_of_pd_valuation,
 simp add::distinct_pds_def)
 apply (thin_tac "Ring (O P nsubgoal_tac "\forall>N. (m_max (Suc n) (Ψ) < N
 apply (simp add:prime_n_pd_def ring_n_pd_def Sr_def (erule c conjE)++,
 simp add:val_t2p)
java.lang.NullPointerException
 apply (simp add:aadd_pos_poss, simp)

 apply (rule conjI,
 rule contrapos_pp, simp+,
 simp add:prime_n_pd_def,
 (erule conjE)+, simp add: one_in_ring_n_pd_one_K,
 simp add:distinct_pds_def, (erule conjE)+,
 cut_tac representative_of_pd_valuation[of "P j"],
 simp add:value_of_one, simp)

  ((rule ballI)+, rule impI)
 apply (rule contrapos_pp, simp+, erule conjE,
 simp add:prime_n_pd_def, (erule conjE)+,
 simp add:ring_n_pd_def Sr_def, (erule conjE)+,
 simp add:aneg_less,
 frule_tac x = "(ν (P j)) x" in ale_antisym[of _ "0"], simp,
 frule_tac x = "(ν (P j)) y" in ale_antisym[of _ "0"], simp)

 apply (simp add:distinct_pds_def, (erule conjE)+,
 cut_tac representative_of_pd_valuation[of "P j"],
 simp add:val_t2p aadd_0_l,
 simp)
 

  (in Corps) n_eq_val_eq_idealTr:
 [distinct_pds K n P; x carrier (O P n); y carrier (O P n);
 j n. ((ν (P j)) x) ((ν (P j)) y)] ==> Rxa (O P n) y Rxa (O P n (erule exE)
  " n. valuation K (ν")
 apply (case_tac "x = 0Oj ( (\Sigma{h. h r ± -r ±
 simp add:zero_in_)
 apply (simp add:value_of_zero)
 apply (subgoal_tac y = 0",simp
 drule_tac a = n in forall_spec, simp,
 drule_tac a=n in forall_spec, simp)
 apply (cut_tac inf_ge_any[of "(ν (P n) appblat
 frule ale_antisym[of "(ν(rl aoupnmmm[f"" "Suc n"], ssum+)
 apply (rule value_inf_zero, assumption+)
 apply (simp add:mem_ring_n_pd_mem_K, assumption)
 
  (frule ring_n_pd[of n P])
 apply (subgoal_tac "jn. 0 ((ν "M < Suc
 ubgoal_tac(y r (x) carrier (O")
 apply (cut_tac field_frac_mul[of "y" "x"],
 frule Ring.rxa_in_Rxa[of "O P n
 simp
 frule Ring.principal_ideal[of "O P n[_, nat, n ==> ant) set] ==>
 
 apply (cut_tac Ring.ideal_cont_Rxa[of "O "(O p x" "y"],
 assumption+,
 simp add:mem_ring_n_pd_mem_K,
 simp add:mem_ring_n_pd_mem_K,
 simp add:zero_in_ring_n_pd_zero_K)
 apply ((frule Ring.xan_RRxa[of "O\^subK P n\^sb""x" "y r (x"], assumption+,
 simp add:ring_n_pd_def Sr_def,
 (erule conjE)+,
 cut_tac field_is_ring, rule Ring.ring_tOp_closed, assumption+,
 cut_tac invf_closed1[of x], simp, simp,
 simp add:ring_n_pd_def Sr_def)
 apply (cut_tac Ring.ring_tOp_closed, assumption+,
 cut_tac field_is_ring, assumption+, simp+,
 cut_tac invf_closed1[of x], simp, simp)

 apply (rule allI, rule impI, drule_tac a = j in forall_spec, assumption+,
 cut_tac invf_closed1[of x], simp, erule conjE)
 apply (subst val_t2p [where v="ν P j"], simp,
 rule mem_ring_n_pd_mem_K[of "n" "P" "y"], assumption+,
 frule_tac x = j in spec, simp,
 simp add:zero_in_ri
java.lang.NullPointerException
  add:ring_n_pd_def Sr_def, assumption+)
 apply (frule_tac x = "(ν allI, rule impI)
 simp add:diff_ant_def,
 simp add:mem_ring_n_pd_mem_K[of "n" "P" "x"] zero_in_ring_n_pd_zero_K)

  (rule allI, rule impI,
 simp add:distinct_pds_def, (erule conjE)+,
 rule_tac P = "P j" in representative simp)
 
 
  (in Corps) n_eq_val_eq_ideal:"[distinct_pds K n P; x calapply (frule(frule_tac x = y in a aGro.ag_mOp_closed[of "K"], assumption+)
 y \<in K P n
\forall>j x) = ((νK (P j) ==>
 )
  (rule equalityI)
 apply (subgoal_tac "j n. (νrule conjI)
 apply (rule n_eq_val_eq_idealTr, assumption+)
 apply (rule allI, rule impI, simp)

 apply (subgoal_tac "j n. (ν
 apply (rule n_eq_val_eq_idealTr, assumption+)
 apply (rule allI, rule impI)
 apply simp
 
 
 
 mI_gen :: "[_ , nat ==> ('r ==> ant) set, nat, 'r set] ==> (simpad:vl_iu_e)
 "mI_gen K P n I =frul_tacx "νK (P j)
) x" nd y = "(νK (P j)

  apply simp

 
 mL :: "[_, nat ==> ('r ==> (simp add:Ring.ring_tOp_closed)
 "mL K P I j = tna (LI K (ν (P j)) I)"

  (in Corps) mI_vals_nonempty:"[K P n
I;
  (ν) ` I
  (frule ring_n_pd[of "n" "P"])
java.lang.NullPointerException

  (simp add:image_def)
  blast
 

  (in Corps) mI_vals_LB:"[distinct_pds K n P; ideal (O P n add:distin
 ((ν (P j)) `I)
 rulesubsetI)
  (simp add:image_def, erule bexE)
  (frule ring_n_pd[of "n" "P"])
 apply (frule_tac h = xa in Ring.ideal_subset[of "O "I"], assumption+)
 apply (thin_tac "ideal (O P n\<^ (
 apply (thin_tac "Ring (O P n
 apply (simp add: ring_n_pd_def Sr_def) apply (erule conjE)+
 apply drule_ta a = j in forall_spec, simp)
 
  (simp add:LBset_def ant_0)
 

  (in Corps) mL_hom:"[K P n

 I "0 }"
 eo_pdvauatio[of " "]
  (rule allI, rule impI)
 apply (simp add:mL_def LI_def)
 apply (simp add:Zset_def)
 

java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 ==>
  (frule_tac j = j in mI_vals_nonempty[of "n" "P" "I"], assumption+)
 apply (frule_tac j = j in mI_vals_LB[of "n" "P" "I"], assumption+)
java.lang.NullPointerException
 apply (simp add:LI_def)
  (in Corps) distinct:"[ (Suc n);
 apply (simp add:image_def, erule bexE)
 apply (drule sym)
 apply blast
 

  (in Corps) val_LI_pos:"[
 I
apply (frule_tac j = j in mI_vals_nonempty[of n P I], assumption+)
 apply (frule_tac j = j in mI_vals_LB[of n P I], assumption+)
 apply (frule_tac A = "(\<nu>\<^bsub>K (P j)\<^esub>) ` I" and z = 0 in AMin_mem, assumption+)
 apply (simp add:LI_def)
apply (frule subsetD[of "(\<nu>\<^bsub>K (P j)\<^esub>) ` I" "LBset (ant 0)" "AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` I)"], assumption+)
apply (simp add:LBset_def ant_0)
done

lemma (in Corps) val_LI_noninf:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; 
       I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; j \<le> n\<rbrakk> \<Longrightarrow> LI K (\<nu>\<^bsub>K (P j)\<^esub>) I \<noteq> \<infinity>"
 apply (frule_tac j = j in mI_vals_nonempty[of "n" "P" "I"], assumption+)
 apply (frule_tac j = j in mI_vals_LB[of "n" "P" "I"], assumption+)
 apply (frule_tac A = "(\<nu>\<^bsub>K (P j)\<^esub>) ` I" and z = 0 in AMin, assumption+)
 apply (thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) ` I \<subseteq> LBset (ant 0)", 
        thin_tac "(\<nu>\<^bsub>K (P j)\<^esub> ) ` I \<noteq> {}")
 apply (frule ring_n_pd[of "n" "P"])
 apply (frule Ring.ideal_zero[of "O\<^bsub>K P n\<^esub>" "I"], assumption+)
 apply (erule conjE, simp add:LI_def)
 apply (frule singleton_sub[of "\<zero>\<^bsub>O\<^bsub>K P n\<^esub>\<^esub>" "I"])
 apply (frule sets_not_eq[of "I" "{\<zero>\<^bsub>O\<^bsub>K P n\<^esub>\<^esub>}"],
        assumption+, erule bexE)
 apply (simp add:zero_in_ring_n_pd_zero_K)
 apply (subgoal_tac "\<exists>x\<in>I. AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` I) = (\<nu>\<^bsub>K (P j)\<^esub>) x",
        erule bexE) apply simp
 apply (drule_tac x = a in bspec, assumption)
 apply (thin_tac "AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` I) = (\<nu>\<^bsub>K (P j)\<^esub>) x")

 apply (frule_tac h = a in Ring.ideal_subset[of "O\<^bsub>K P n\<^esub>" "I"], assumption+)
 apply (frule_tac x = a in mem_ring_n_pd_mem_K[of n P], assumption+)
 apply (simp add:distinct_pds_def, (erule conjE)+)
 apply (cut_tac representative_of_pd_valuation[of "P j"])
 defer apply simp apply blast
 apply (frule_tac x = a in val_nonzero_z[of "\<nu>\<^bsub>K (P j)\<^esub>"], assumption+,
        erule exE, simp)
 apply (thin_tac "\<forall>l \<le> n. \<forall>m \<le> n. l \<noteq> m \<longrightarrow> P l \<noteq> P m",
        thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) a = ant z")

 apply (rule contrapos_pp, simp+)
 apply (cut_tac x = "ant z" in inf_ge_any) 
 apply (frule_tac x = "ant z" in ale_antisym[of _ "\<infinity>"], assumption+)
 apply simp 
done 

lemma (in Corps) Zleast_in_mI_pos:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; 
       I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; j \<le> n\<rbrakk> \<Longrightarrow> 0 \<le> mL K P I j"
apply (simp add:mL_def)
apply (frule ex_Zleast_in_mI[of "n" "P" "I" "j"], assumption+,
       erule bexE, frule sym, thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) x = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I")
apply (subgoal_tac "LI K (\<nu>\<^bsub>K (P j)\<^esub>) I \<noteq> \<infinity>", simp)
apply (thin_tac "LI K (\<nu>\<^bsub>K (P j)\<^esub>) I = (\<nu>\<^bsub>K (P j)\<^esub>) x")

 apply (frule ring_n_pd[of "n" "P"])
 apply (frule_tac h = x in Ring.ideal_subset[of "O\<^bsub>K P n\<^esub>" "I"], assumption+)
 apply (thin_tac "ideal (O\<^bsub>K P n\<^esub>) I")
 apply (thin_tac "Ring (O\<^bsub>K P n\<^esub>)")
 apply (simp add: ring_n_pd_def Sr_def) apply (erule conjE)
 apply (drule_tac a = j in forall_spec, assumption)
 apply (simp add:apos_tna_pos)
apply (rule val_LI_noninf, assumption+)
done 

lemma (in Corps) Zleast_mL_I:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j \<le> n;
   I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; x \<in> I\<rbrakk> \<Longrightarrow> ant (mL K P I j) \<le> ((\<nu>\<^bsub>K (P j)\<^esub>) x)"
apply (frule val_LI_pos[of "n" "P" "I" "j"], assumption+)
apply (frule apos_neq_minf[of "LI K (\<nu>\<^bsub>K (P j)\<^esub>) I"])
apply (frule val_LI_noninf[of "n" "P" "I" "j"], assumption+)
apply (simp add:mL_def LI_def)
apply (simp add:ant_tna)
apply (frule Zleast_in_mI_pos[of "n" "P" "I" "j"], assumption+)

apply (frule mI_vals_nonempty[of "n" "P" "I" "j"], assumption+)
apply (frule mI_vals_LB[of "n" "P" "I" "j"], assumption+)
apply (frule AMin[of "(\<nu>\<^bsub>K (P j)\<^esub>) `I" "0"], assumption+)
 apply (erule conjE)
apply (frule Zleast_in_mI_pos[of "n" "P" "I" "j"], assumption+)
 apply (simp add:mL_def LI_def)
done 

lemma (in Corps) Zleast_LI:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j \<le> n;
   I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; x \<in> I\<rbrakk> \<Longrightarrow> (LI K (\<nu>\<^bsub>K (P j)\<^esub>) I) \<le> ((\<nu>\<^bsub>K (P j)\<^esub>) x)"
apply (frule mI_vals_nonempty[of "n" "P" "I" "j"], assumption+)
apply (frule mI_vals_LB[of "n" "P" "I" "j"], assumption+)
apply (frule AMin[of "(\<nu>\<^bsub>K (P j)\<^esub>) `I" "0"], assumption+)
 apply (erule conjE)
apply (simp add:LI_def)
done

lemma (in Corps) mpdiv_vals_nonequiv:"distinct_pds K n P \<Longrightarrow> 
             vals_nonequiv K n (\<lambda>j. \<nu>\<^bsub>K (P j)\<^esub>) "  
apply (simp add:vals_nonequiv_def)
 apply (rule conjI)
 apply (simp add:valuations_def)
 apply (rule allI, rule impI)
 apply (rule representative_of_pd_valuation, 
        simp add:distinct_pds_def) 
apply  ((rule allI, rule impI)+, rule impI)
 apply (simp add:distinct_pds_def, erule conjE)
 apply (rotate_tac 4) apply (
        drule_tac a = j in forall_spec, assumption)
 apply (rotate_tac -1,
        drule_tac a = l in forall_spec, assumption, simp)
 apply (simp add:distinct_p_divisors)
done

definition
  KbaseP :: "[_, nat \<Rightarrow> ('r \<Rightarrow> ant) set, nat] \<Rightarrow> 
                                          (nat \<Rightarrow> 'r) \<Rightarrow> bool"  where
  "KbaseP K P n f \<longleftrightarrow> (\<forall>j \<le> n. f j \<in> carrier K) \<and> 
     (\<forall>j \<le> n. \<forall>l \<le> n. (\<nu>\<^bsub>K (P j)\<^esub>) (f l) =  (\<delta>\<^bsub>j l\<^esub>))"

definition
  Kbase :: "[_, nat, nat \<Rightarrow> ('r \<Rightarrow> ant) set] 
               \<Rightarrow> (nat \<Rightarrow> 'r)" (\<open>(3Kb\<^bsub>_ _ _\<^esub>)\<close> [95,95,96]95) where
  "Kb\<^bsub>K n P \<^esub> = (SOME f. KbaseP K P n f)"

lemma (in Corps) KbaseTr:"distinct_pds K n P \<Longrightarrow>  \<exists>f. KbaseP K P n f"
apply (simp add: KbaseP_def)
 apply (frule mpdiv_vals_nonequiv[of "n" "P"])
 apply (case_tac "n = 0")
  apply (simp add:vals_nonequiv_def valuations_def)
  apply (simp add:distinct_pds_def) 
  apply (frule n_val_n_val1[of "P 0"])
  apply (frule n_val_surj[of "\<nu>\<^bsub>K (P 0)\<^esub>"])
  apply (erule bexE)
  apply (subgoal_tac " ((\<lambda>j\<in>{0::nat}. x) (0::nat)) \<in> carrier K \<and> 
         (\<nu>\<^bsub>K (P 0)\<^esub>) ((\<lambda>j\<in>{0::nat}. x) (0::nat)) = (\<delta>\<^bsub>0 0\<^esub>)") 
  apply blast
  apply (rule conjI)
 apply simp apply (simp add:Kronecker_delta_def)
 apply (cut_tac Approximation1_5[of "n - Suc 0" "\<lambda>j. \<nu>\<^bsub>K (P j)\<^esub>"])
 apply simp 
 apply simp+
 apply (rule allI, rule impI)
 apply (rule n_val_n_val1 )
 apply (simp add:distinct_pds_def)
done

lemma (in Corps) KbaseTr1:"distinct_pds K n P \<Longrightarrow>  KbaseP K P n (Kb\<^bsub>K n P \<^esub>)"
apply (subst Kbase_def)
apply (frule KbaseTr[of n P])
apply (erule exE)
apply (simp add:someI)
done 

lemma (in Corps) Kbase_hom:"distinct_pds K n P \<Longrightarrow> 
                       \<forall>j \<le> n. (Kb\<^bsub>K n P\<^esub>) j \<in> carrier K"       
apply (frule KbaseTr1[of "n" "P"])
apply (simp add:KbaseP_def)
done

lemma (in Corps) Kbase_Kronecker:"distinct_pds K n P \<Longrightarrow> 
      \<forall>j \<le> n. \<forall>l \<le> n. (\<nu>\<^bsub>K (P j)\<^esub>) ((Kb\<^bsub>K n P\<^esub>) l) = \<delta>\<^bsub>j l\<^esub>"     
apply (frule KbaseTr1[of n P])
apply (simp add:KbaseP_def)
done   

lemma (in Corps) Kbase_nonzero:"distinct_pds K n P \<Longrightarrow> 
                        \<forall>j \<le> n. (Kb\<^bsub>K n P\<^esub>) j \<noteq> \<zero>"
apply (rule allI, rule impI)
 apply (frule Kbase_Kronecker[of n P])
 apply (subgoal_tac "(\<nu>\<^bsub>K (P j)\<^esub>) ((Kb\<^bsub>K n P\<^esub>) j) = \<delta>\<^bsub>j j\<^esub>")
 apply (thin_tac "\<forall>j\<le>n. (\<forall>l\<le>n. ((\<nu>\<^bsub>K P j\<^esub>) ((Kb\<^bsub>K n P\<^esub>) l)) = \<delta>\<^bsub>j l\<^esub>)")
 apply (simp add:Kronecker_delta_def)
 apply (rule contrapos_pp, simp+)
 apply (cut_tac P = "P j" in representative_of_pd_valuation)  
 apply (simp add:distinct_pds_def)
 apply (simp only:value_of_zero, simp only:ant_1[THEN sym],
        frule sym, thin_tac " \<infinity> = ant 1", simp del:ant_1)
apply simp
done

lemma (in Corps) Kbase_hom1:"distinct_pds K n P \<Longrightarrow> 
                    \<forall>j \<le> n. (Kb\<^bsub>K n P\<^esub>) j \<in> carrier K - {\<zero>}"
by(simp add:Kbase_nonzero Kbase_hom)

definition
  Zl_mI :: "[_, nat \<Rightarrow> ('b \<Rightarrow> ant) set, 'b set]
                         \<Rightarrow> nat \<Rightarrow> 'b" where
  "Zl_mI K P I j = (SOME x. (x \<in> I \<and> ( (\<nu>\<^bsub>K (P j)\<^esub>) x = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I)))"

lemma (in Corps) value_Zl_mI:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j \<le> n\<rbrakk>
 \<Longrightarrow>  (Zl_mI K P I j \<in> I) \<and> (\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I j) = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I"
apply (subgoal_tac "\<exists>x. (x \<in> I \<and> ((\<nu>\<^bsub>K (P j)\<^esub>) x = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I))")
apply (subst Zl_mI_def)+
apply (rule someI2_ex, assumption+) 
apply (frule ex_Zleast_in_mI[of "n" "P" "I" "j"], assumption+)
apply (erule bexE, blast) 
done

lemma (in Corps) Zl_mI_nonzero:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; 
      I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; j \<le> n\<rbrakk> \<Longrightarrow>  Zl_mI K P I j \<noteq> \<zero>"
apply (case_tac "n = 0")
apply (simp add:distinct_pds_def) 
 apply (frule representative_of_pd_valuation[of "P 0"])
 apply (subgoal_tac "O\<^bsub>K P 0\<^esub> = Vr K (\<nu>\<^bsub>K (P 0)\<^esub>)")
 apply (subgoal_tac "Zl_mI K P I 0 = Ig K (\<nu>\<^bsub>K (P 0)\<^esub>) I")  
 apply simp apply (simp add:Ig_nonzero)
 apply (simp add:Ig_def Zl_mI_def)
 apply (simp add:ring_n_pd_def Vr_def)

 apply (simp)
 apply (frule value_Zl_mI[of n P I j], assumption+)
 apply (erule conjE)
 apply (rule contrapos_pp, simp+)
 apply (frule distinct_pds_valuation1[of n j P], assumption+)
 apply (simp add:value_of_zero)
 apply (simp add:zero_in_ring_n_pd_zero_K)
 apply (frule singleton_sub[of "\<zero>" "I"], 
        frule sets_not_eq[of "I" "{\<zero>}"], assumption,
        erule bexE, simp)
 apply (frule_tac x = a in Zleast_mL_I[of "n" "P" "I" "j"], assumption+)
 apply (frule_tac x = a in val_nonzero_z[of "\<nu>\<^bsub>K (P j)\<^esub>"])
 apply (frule ring_n_pd[of "n" "P"])
 apply (frule_tac h = a in Ring.ideal_subset[of "O\<^bsub>K P n\<^esub>" "I"], assumption+)
 apply (simp add:mem_ring_n_pd_mem_K) apply assumption

apply (simp add:zero_in_ring_n_pd_zero_K) apply assumption
apply (frule val_LI_noninf[THEN not_sym, of "n" "P" "I" "j"], assumption+)
 apply (simp add:zero_in_ring_n_pd_zero_K) apply assumption
  java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
done
 
lemma (in Corps) Zl_mI_mem_K:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; l \<le> n\<rbrakk>
       \<Longrightarrow> (Zl_mI K P I l) \<in> carrier K"
apply (frule value_Zl_mI[of "n" "P" "I" "l"], assumption+)
apply (erule conjE) 
 apply (frule ring_n_pd[of "n" "P"])
 apply (frule Ring.ideal_subset[of "O\<^bsub>K P n\<^esub>" "I" "Zl_mI K P I l"], assumption+)
 apply (simp add:mem_ring_n_pd_mem_K[of "n" "P" "Zl_mI K P I l"])
done

definition
  mprod_exp :: "[_, nat \<Rightarrow> int, nat \<Rightarrow> 'b, nat] 
              \<Rightarrow> 'b" where
  "mprod_exp K e f n = nprod K (\<lambda>j. ((f j)\<^bsub>K\<^esub>\<^bsup>(e j)\<^esup>)) n"

lemma (in Corps) mprod_expR_memTr:"(\<forall>j\<le>n. f j \<in> carrier K)  \<longrightarrow>  
                      mprod_expR K e f n \<in> carrier K"
apply (cut_tac field_is_ring)
apply (induct_tac n)
 apply (rule impI, simp) 
 apply (simp add:mprod_expR_def)
 apply (cut_tac Ring.npClose[of K "f 0" "e 0"], assumption+)

apply (rule impI) 
 apply simp
 apply (subst Ring.mprodR_Suc, assumption+)
 apply (simp)
 apply (simp)
 apply (rule Ring.ring_tOp_closed[of K], assumption+)
 apply (rule Ring.npClose, assumption+) 
 apply simp 
done

lemma (in Corps) mprod_expR_mem:"\<forall>j \<le> n. f j \<in> carrier K \<Longrightarrow> 
           mprod_expR K e f n \<in> carrier K"
apply (cut_tac field_is_ring) 
apply (cut_tac Ring.mprod_expR_memTr[of K e n f])
applysimp
apply (subgoal_tac "f \<in> {j. j \<le> n} \<rightarrow> carrier K", simp+)
done 

lemma (in Corps) mprod_Suc:"\<lbrakk> \<forall>j\<le>(Suc n). e j \<in> Zset; 
               <forall> \le>Sucn) fj\<> (carrierK-{\ero>}\rbrakk \<> 
 mprod_exp K e f (Suc n) = (mprod_exp K e f n) \<cdot>\<^sub>r ((f (Suc n))\<^bsub>K\<^esub (frulering_n_pd[of n"P")
apply (simp add:mprod_exp_def)
one

lemma (in Corps) mprod_memTr:"
 (\<forall>j \<le> n. e j \<in> Zset) \<and> (\<forall>j \<le> n. f j \<in> ((carrier K) - {\<zero>})) \<longrightarrow> 
       (mprod_exp K e f n) \<in> ((carrier K) - {\<zero>})" 
apply (induct_tac n)
 apply (simp, rule impI, (erule conjE)+,
        simp add:mprod_exp_def, simp add:npowf_mem,
        simp add:field_potent_nonzero1) 
apply (rule impI, simp, erule conjE,
       cut_tac field_is_ring, cut_tac field_is_idom,
eruleconjE,simpadd:)
 apply (rule conjI)
apply( Ring.ring_tOp_closed[of""] assumption+,
        simp add:npowf_mem)
 apply (rule Idomain.idom_tOp_nonzeros, assumption+,
simp:, assumption
simp:) 
done

 thin_tac I\noteq>\zero\^bsub\bsubPn<
apply (cut_tac mprod_memTr[of n e f]) apply simp
done

lemma (in Corps) mprod_mprodR:"\<lbrakk>\<forall>j \<le> n. e j \<in> Zset; \<forall>j \<le> n. 0 \<le> (e j); 
 
              mprod_exp K e f n = mprod_expR K (nat o e) f n"
  )
apply (simp add:mprod_exp_def mprod_expR_def) 
apply (rule Ring.nprod_eq, assumption+)
 apply (rule allI, rule impI, simp add:npowf_mem)
 apply (rule allI, rule impI, rule Ring.npClose, assumption+, simp)
apply (rule allI, rule impI)
 apply (simp add:npowf_def)
done

subsection "Representation of an ideal I as a product of prime ideals"

lemma (in Corps) ring_n_mprod_mprodRTr:"distinct_pds K n P \<Longrightarrow> 
       (\<forall>j \<le> m. e j \<in> Zset) \<and> (\<forall>j \<le> m. 0 \<le> (e j)) \<and> 
       (\<forall>j \<le> m. f j \<in> carrier (O\<^bsub>K P n\<^esub>)-{\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}) \<longrightarrow> 
        mprod_exp K e f m = mprod_expR (O\<^bsub>K P n\<^esub>) (nat o e) f m"
apply (frule ring_n_pd[of n P])
apply (induct_tac m) 
 apply (rule impI, (erule conjE)+,
        simp add:mprod_exp_def mprod_expR_def)
 apply (erule conjE, simp add:npowf_def, simp add:ring_n_exp_K_exp) 

apply (rule impI, (erule conjE)+, simp)  
 apply (subst mprod_Suc, assumption+,
        rule allI, rule impI,
        simp add:mem_ring_n_pd_mem_K,
        simp add:zero_in_ring_n_pd_zero_K)
  apply (subst Ring.mprodR_Suc, assumption+,
         simp add:cmp_def,
         simp)
  apply (simp add:ring_n_pd, simp add:npowf_def, 
         simp add:ring_n_exp_K_exp) 
 apply (subst ring_n_tOp_K_tOp, assumption+,
        rule Ring.mprod_expR_mem, simp add:ring_n_pd,
        simp,
        simp)
 apply (rule Ring.npClose, simp add:ring_n_pd, simp, simp)
done

lemma (in Corps) ring_n_mprod_mprodR:"\<lbrakk>distinct_pds K n P; \<forall>j \<le> m. e j \<in> Zset;
 \<forall>j \<le> m. 0 \<le> (e j); \<forall>j \<le> m. f j \<in> carrier (O\<^bsub>K P n\<^esub>)-{\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}\<rbrakk> 
 \<Longrightarrow>  mprod_exp K e f m = mprod_expR (O\<^bsub>K P n\<^esub>) (nat o e) f m"
apply (simp add:ring_n_mprod_mprodRTr)
done

lemma (in Corps) value_mprod_expTr:"valuation K v  \<Longrightarrow> 
 (\<forall>j \<le> n. e j \<in> Zset) \<and> (\<forall>j \<le> n. f j \<in> (carrier K - {\<zero>})) \<longrightarrow>
 v (mprod_exp K e f n) =  ASum  (\<lambda>j. (e j) *\<^sub>a (v (f j))) n"  
apply (induct_tac n)
 apply simp
 apply (rule impI, erule conjE)
 apply(simp add:mprod_exp_def val_exp) 

apply (rule impI, erule conjE)
 apply simp
 apply (subst mprod_Suc, assumption+)
 apply (rule allI, rule impI, simp)
 apply (subst val_t2p[of v], assumption+)
 apply (cut_tac n = "n" in mprod_mem[of _ e f],
        (rule allI, rule impI, simp)+, simp)
 apply (simp add:npowf_mem, simp add:field_potent_nonzero1)
 apply (simp add:val_exp[THEN sym, of "v"]) 
done 

lemma (in Corps) value_mprod_exp:"\<lbrakk>valuation K v; \<forall>j \<le> n. e j \<in> Zset; 
       \<forall>j \<le> n. f j \<in> (carrier K - {\<zero>})\<rbrakk> \<Longrightarrow> 
     v (mprod_exp K e f n) = ASum (\<lambda>j. (e j) *\<^sub>a (v (f j))) n"  
apply (simp add:value_mprod_expTr)
done

lemma (in Corps) mgenerator0_1:"\<lbrakk>distinct_pds K (Suc n) P; 
 ideal (O\<^bsub>K P (Suc n)\<^esub>) I; I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P (Suc n)\<^esub>)\<^esub>}; 
 I \<noteq> carrier (O\<^bsub>K P (Suc n)\<^esub>); j \<le> (Suc n)\<rbrakk> \<Longrightarrow>
((\<nu>\<^bsub>K (P j)\<^esub>) (mprod_exp K (mL K P I) (Kb\<^bsub>K (Suc n) P\<^esub>) (Suc n))) = 
                   ((\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I j))" 
apply (frule distinct_pds_valuation[of j n P], assumption+)
 apply (frule mL_hom[of "Suc n" "P" "I"], assumption+)
 apply (frule Kbase_hom1[of "Suc n" "P"]) 
 apply (frule value_mprod_exp[of "\<nu>\<^bsub>K (P j)\<^esub>" "Suc n" "mL K P I" 
           "Kb\<^bsub>K (Suc n) P\<^esub>"], assumption+)

 apply (simp del:ASum_Suc)
 apply (thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) (mprod_exp K (mL K P I) (Kb\<^bsub>K (Suc n) P\<^esub>) (Suc n)) =
     ASum (\<lambda>ja. (mL K P I ja) *\<^sub>a (\<nu>\<^bsub>K (P j)\<^esub>) ((Kb\<^bsub>K (Suc n) P\<^esub>) ja)) (Suc n)")
apply (subgoal_tac "ASum (\<lambda>ja. (mL K P I ja) *\<^sub>a 
      ((\<nu>\<^bsub>K (P j)\<^esub>) ((Kb\<^bsub>K (Suc n) P\<^esub>) ja))) (Suc n) = 
                ASum (\<lambda>ja. (mL K P I ja) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>)) (Suc n)")
apply (simp del:ASum_Suc)
apply (subgoal_tac "\<forall>h \<le> (Suc n). (\<lambda>ja. (mL K P I ja) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>)) h \<in> Z\<^sub>\<infinity>")
auto , , , . We demonstratethiswithabenchmarkcontaining 2267methodcalls
 apply simp
 apply (simp add:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 apply (rotate_tac -1, drule not_sym) 
apply (simp add:mL_def[of "K" "P" "I" "j"])

apply (frule val_LI_noninf[of "Suc n" "P" "I" "j"], assumption+)
 apply (rule not_sym, simp, simp)
apply (frule val_LI_pos[of "Suc n" "P" "I" "j"], assumption+,
       rotate_tac -2, frule not_sym, simp, simp)

apply (frule apos_neq_minf[of "LI K (\<nu>\<^bsub>K (P jjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 20
(:) 
apply (simp add:value_Zl_mI[of "Suc n" "P" "I" "j"])
apply (rule allI, rule impI)
 apply (simp add:Kdelta_in_Zinf, simp)
 apply (rule ballI, simp)
apply(simpadd:Kronecker_delta_def, erule conjE)
 apply (simp add:asprod_n_0)

apply (rule allI, rule impI) 
 apply (simp add:Kdelta_in_Zinf)

apply (frule  Kbase_Kronecker[of "Suc n" "P"])
 apply (rule ASum_eq,
        rule allI, rule impI,
        simp add:Kdelta_in_Zinf,
        rule allI, rule impI,
        simp add:Kdelta_in_Zinf)
ruleallI rule )  simp
done

lemma (in Corps) mgenerator0_2:"\<lbrakk> 0 < n; distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I  (simp add:Zl_mI_mem_K)
  \<noteq>{\zero>\<^bsub>(\^bsub> Pn\<esub)\<^esub>} I\noteq>carrier (O\<bsubK  \^esub>);j\<>n<>  <Longrightarrow>
(<>\<^bsubK P )\^esub)(mprod_exp K(mL  P I)(\^bsub>K  P<^esub) n) =((<nu><bsubK( j)\^>) (l_mI K P  j)"
apply (cut_tac mgenerator0_1[of  "n - Suc 0" "P" "I" "j"])
 apply simp+
done

lemma (in Corps) mgenerator1:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; 
 I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; I \<noteq> carrier (O\<^bsub>K P n\<^esub>); j \<le> n\<rbrakk> \<Longrightarrow>
((\<nu>\<^bsub>K (P j)\<^esub>) (mprod_exp K (mL K P I) (Kb\<^bsub>K n P\<^esub>) n)) = ((\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I j))"

       frule value_Zl_mI[of "n" "P" "I" "j"], assumption+,
       frule val_LI_noninf[of "n" "P" "I" "j"], assumption+,
       frule val_LI_pos[of  "n" "P" "I" "j"], assumption+,
       frule apos_neq_minf[of "LI K (\<nu>\<^bsub>K (P j)\<apply (fruleval_LI_noninf[of "n" "P"I n],assumption, simp )java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
       simp add:distinct_pds_def, erule conjE)  
 apply (cut_tac representative_of_pd_valuation[of "P j"], simp+,
        simp add:mprod_exp_def,
        subst val_exp[THEN sym, of "\<nu>\<^bsub>K (P 0)\<^esub>" "(Kb\<^bsub>K 0 P\<^esub>) 0"], assumption+,
        cut_tac Kbase_hom[of "0" "P"], simp,
        simp add:distinct_pds_def,
        cut_tac Kbase_nonzero[of "0" "P"], simp+,
        simp add:distinct_pds_def) 
 apply (cut_tac Kbase_nonzero[of "0" "P"], simp add:distinct_pds_def) 
 apply (cut_tac Kbase_Kronecker[of "0" "P"], simp add:distinct_pds_def) 
 apply (simp add:Kronecker_delta_def, simp add:mL_def, simp add:ant_tna)
 apply (simp add:distinct_pds_def)+
apply (cut_tac mgenerator0_2[of "n" "P" "I" "j"], simp+)
 apply (simp add:distinct_pds_def) apply simp+
done
    
lemma (in Corps) mgenerator2Tr1:"\<lbrakk>0 < n; j \<le> n; k \<le> n; distinct_pds K napply( "\><sub>K(lambdak Zl_mI KPIk\cdot\^subr
      (\<nu>\<^bsub>K (P j)\<^esub>) (mprod_exp K (\<lambda>l. \<gamma>\<^bsub>k l\<^esub> ) (Kb\<^bsub>K n P\<^esub>) n) = (\<gamma>\<^bsub>k j\<^esub>) *\<^sub>a (\<delta>\<^bsub>j j\<^esub>)"
apply (frule distinct_pds_valuation1[of "n" "j" "P"], assumption+)
apply (frule K_gamma_hom[of k n]) 
apply (subgoal_tac "\<forall>j \<le> n. (Kb\<^bsub>K n P\<^esub>) j \<in> carrier K - {\<zero>}")
apply (simp add:value_mprod_exp[of "\<nu>\<^bsub>K (P j)\<^esub>" n "K_gamma k" "(Kb\<^bsub>K n P\<^esub>)"])
apply (subgoal_tac "ASum (\<lambda>ja. (\<gamma>\
       = ASum (\<lambda>ja. (((\<gamma>\<^bsub>k ja\<^esub>) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>)))) n")
 apply simp
 apply (subgoal_tac "\<forall>j \<le> n. (\<lambda>ja. (\<gamma>\<^bsub>k ja\<^esub>) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>)) j \<in> Z\<^sub>\<infinity>")
 apply (cut_tac eSum_single[of n "\<lambda>ja. ((\<gamma>\<^bsub>k ja\<^esub>) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>))"  "j"], simp)
 apply (rule allI, rule impI, simp add:Kronecker_delta_def, 
        rule impI, simp add:asprod_n_0 Zero_in_aug_inf, assumption+)
 apply (rule ballI, simp)
onecker_delta_def
  apply (rule apply ( add:aadd_0_r)
  apply (simp add:Kronecker_delta_def, simp add:K_gamma_def)
 apply (simp add:ant_0 Zero_in_aug_inf)
 apply (cut_tac lemma( Corps) mI_gen_in_I"\lbrakk0 <n;distinct_pds K nP;ideal (\^bsub> P n\esub> I 

 apply (rule ASum_eq)
  apply(rule allI,rule )
  apply (simp add:K_gamma_def, simp add:Zero_in_aug_inf) 
  apply (rule impI, rule value_in_aug_inf, assumption+, simp)
  apply (simp add:K_gamma_def Zero_in_aug_inf Kdelta_in_Zinf1)
  apply (rule allI, rule impI)
  apply (simp add:Kbase_Kronecker[of "n" "P"])
  apply (rule Kbase_hom1, assumption+)
done

lemma (in Corps) mgenerator2Tr2:"\<lbrakk>0 < n; j \<le> n; k \<le> n; distinct_pds K n P\<rbrakk> \<Longrightarrow>
     (\<nu>\<^bsub>K (P j)\<^esub>) ((mprod_exp K (\<lambda>l. \<gamma>\<^bsub>k 

apply (frule K_gamma_hom[of k n])
apply (frule Kbase_hom1[of "n" "P"])
apply (frule mprod_mem[of n "K_gamma k" "Kb\<^bsub>K n P\<^esub>"], assumption+)
apply (frule distinct_pds_valuation1[of "n" "j" "P"], assumption+)
apply (simp, erule conjE)
apply (simp add:val_exp[THEN sym])
apply (simp add:mgenerator2Tr1)
 apply (simp add:K_gamma_def Kronecker_delta_def)
 apply (rule impI)
 apply (simp add:asprod_def a_z_z)
done

lemma (in Corps) mgenerator2Tr3_1:"\<lbrakk>0 < n; j \<le> n; k \<le> n; j = k; 
      distinct_pds K n P\<rbrakk> \<Longrightarrow>
          \<nu\^bsub> (Pj)\^esub>) (mprod_exp K (<>l \gamma\^> \^>))(\^bsub>KnP<esub) n)\bsubK\esub\^bsup>\^>  0"
  (simp add:mgenerator2Tr2) apply (simp add:K_gamma_def)
 

  (in Corps) mgenerator2Tr3_2:"[0 < n; j n; k n; j k;
 distinct_pds K n P] ==>
 (ν (P j)) ((mprod_exp K (λl. (γ l)) (Kb n P) n)) = ant m"
  (simp add:mgenerator2Tr2) apply (simp add:K_gamma_def)
 

  (in Corps) mgeneratorTr4:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0 P n}; I carrier (O P n)] ==>
 mprod_exp K (mL K P I) (Kb n P) n carrier (O P n)"
  (subst ring_n_pd_def)
  (simp add:Sr_def)
 apply (frule mL_hom[of "n" "P" "I"], assumption+)
 apply (frule mprod_mem[of n "mL K P I" "Kb n P"])
 apply (rule Kbase_hom1, assumption+)

 apply (simp add:mprod_mem)

  (rule allI, rule impI)
 apply (simp add:mgenerator1)
 apply (simp add:value_Zl_mI)
 apply (simp add:val_LI_pos)
 

 
 m_zmax_pdsI_hom :: "[_, nat ==> ('b ==> ant) set, 'b set] ==> nat ==> int" where
 "m_zmax_pdsI_hom K P I = (λj. tna (AMin ((ν (P j)) ` I)))"

 
 m_zmax_pdsI :: "[_, nat, nat ==> ('b ==> ant) set, 'b set] ==> int" where
 "m_zmax_pdsI K n P I = (m_zmax n (m_zmax_pdsI_hom K P I)) + 1"
 
  (in Corps) value_Zl_mI_pos:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n); j n; l n] ==>
 0 ((ν (P j)) (Zl_mI K P I l))"
  (frule value_Zl_mI[of "n" "P" "I" "l"], assumption+)
  (erule conjE)
 apply (frule ring_n_pd[of "n" "P"])
 apply (frule Ring.ideal_subset[of "O P n" "I" "Zl_mI K P I l"], assumption+)
 apply (thin_tac "ideal (O P n) I")
 apply (thin_tac "I {0 P n}")
 apply (thin_tac "I carrier (O P n)")
 apply (thin_tac "Ring (O P n)")
 apply (simp add:ring_n_pd_def Sr_def)
 

  (in Corps) value_mI_genTr1:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0 P n}; I carrier (O P n); j n] ==>
 (mprod_exp K (K_gamma j) (Kb n P) n)m_zmax_pdsI K n P I) carrier K"
  (frule K_gamma_hom[of "j" "n"])
  (frule mprod_mem[of n "K_gamma j" "Kb n P"])
 apply (rule Kbase_hom1, assumption+)
  (rule npowf_mem)
 apply simp+
 

  (in Corps) value_mI_genTr1_0:"[0 < n; distinct_pds K n P;
 ideal (O P n) I; I {0 P n}; I carrier (O P n); j n]
 ==> (mprod_exp K (K_gamma j) (Kb n P) n) carrier K"
  (frule K_gamma_hom[of "j" "n"])
  (frule mprod_mem[of n "K_gamma j" "Kb n P"])
 apply (rule Kbase_hom1, assumption+)
 apply simp
 


  (in Corps) value_mI_genTr2:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0 P n}; I carrier (O P n); j n] ==>
 (mprod_exp K (K_gamma j) (Kb n P) n)m_zmax_pdsI K n P I) 0"
 apply (frule K_gamma_hom[of "j" "n"])
 apply (frule mprod_mem[of n "K_gamma j" "Kb n P"])
 apply (rule Kbase_hom1, assumption+) apply simp apply (erule conjE)
 apply (simp add: field_potent_nonzero1)
 

  (in Corps) value_mI_genTr3:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0 P n}; I carrier (O P n); j n] ==>
 (Zl_mI K P I j) r ((mprod_exp K (K_gamma j) (Kb n P) n)m_zmax_pdsI K n P I))
  carrier K"
  (cut_tac field_is_ring)
  (rule Ring.ring_tOp_closed, assumption+)
  (simp add:Zl_mI_mem_K)
  (simp add:value_mI_genTr1)
 

  (in Corps) value_mI_gen:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n); j n] ==>
 ν (P j)) (nsum K (λk. ((Zl_mI K P I k) r ((mprod_exp K (λl. (γ l)) (Kb n P) n)m_zmax_pdsI K n P I)))) n) = LI K (ν (P j)) I"
  (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
  (case_tac "j = n", simp)
 apply (cut_tac nsum_suc[of K "λk. Zl_mI K P I k r
 mprod_exp K (K_gamma k) (Kb n P) n K n P I" "n - Suc 0"],
 simp,
 thin_tac "Σe K (λk. Zl_mI K P I k r
 mprod_exp K (K_gamma k) (Kb n P) n K n P I) n =
 Σe K (λk. Zl_mI K P I k r
 mprod_exp K (K_gamma k) (Kb n P)
 n K n P I) (n - Suc 0) ±
 Zl_mI K P I n r
 mprod_exp K (K_gamma n) (Kb n P) n K n P I")
 apply (cut_tac distinct_pds_valuation[of "n" "n - Suc 0" "P"])
  2 apply simp
  2 apply simp
 apply (subst value_less_eq1[THEN sym, of "ν (P n)"
 "(Zl_mI K P I n)r (mprod_exp K (K_gamma n) (Kb n P) n K n P I)"
 "nsum K (λk.(Zl_mI K P I k)r (mprod_exp K (K_gamma k) (Kb n P) n K n P I)) (n - Suc 0)"], assumption+)

 apply (simp add:value_mI_genTr3)
 apply (frule Ring.ring_is_ag[of K])
 apply (rule aGroup.nsum_mem[of _ "n - Suc 0"], assumption+)
 apply (rule allI, rule impI)
 apply (simp add:value_mI_genTr3)

 apply (subst val_t2p[of "ν (P n)"], assumption+)
 apply (simp add:Zl_mI_mem_K)
 apply (simp add:value_mI_genTr1)

 apply (simp add:mgenerator2Tr3_1[of "n" "n" "n" "P"])
 apply (simp add:aadd_0_r)
  (frule value_Zl_mI[of "n" "P" "I" "n"], assumption+, simp)
 apply (erule conjE)
 apply (frule_tac f = "λk. (Zl_mI K P I k) r
 (mprod_exp K (K_gamma k) (Kb n P) n K n P I)" in
 value_ge_add[of "ν (P n)" "n - Suc 0" _
 "ant (m_zmax_pdsI K n P I)"])
 apply (rule allI, rule impI)
 apply (rule Ring.ring_tOp_closed, assumption+)
 apply (simp add:Zl_mI_mem_K)
 apply (simp add:value_mI_genTr1)

 apply (rule allI, rule impI) apply (simp add:cmp_def)
 apply (subst val_t2p [where v="ν P n"], assumption+)
 apply (simp add:Zl_mI_mem_K)
 apply (simp add:value_mI_genTr1)

 apply (cut_tac e = "K_gamma ja" in mprod_mem[of n _ "Kb n P"])
 apply (simp add:Zset_def) apply (rule Kbase_hom1, assumption+)
 apply (subst val_exp[of "ν (P n)", THEN sym], assumption+)
 apply simp+

 apply (subst mgenerator2Tr1[of "n" "n" _ "P"], assumption+, simp,  
 assumption+)
 apply (simp add:K_gamma_def Kronecker_delta_def)
 apply (frule_tac l = ja in value_Zl_mI_pos[of "n" "P" "I" "n"],
 assumption+, simp, simp)
  dNe_per)
 apply (frule_tac y = "(ν (P n)) (Zl_mI K P I ja
 aadd_le_mono[of "0" _ "ant (m_zmax_pdsI K n P I)"]) apply (simp add:aadd_0_l)
 apply (subgoal_tac "LI K (ν (P n)
 apply simp
 apply (rule aless_le_trans[of "LI K (ν I"
 "ant (m_zmax_pdsI K n P I)"])

 _maa_d_f
java.lang.NullPointerException
 "m_zmax n (m_zmax_pdsI_hom K P I) + 1"])
  (frule val_LI_noninf[of "n" "P" "I" "n"], assumption+, simp, simp)
 frule val_LI_pos[of "n" "P" "I" "n"], assumption+, simp,
 frule apos_neq_minf[of "LI K (ν (P n)) I"], simp add:ant_tna)
 apply (subst m_zmax_pdsI_hom_def)
 applyut Ie
 apply (cut_tac m_zmax_gt_each[of n "λu.(tna (AMin ((ν(\^) ` I)))"])
 apply simp

 apply (rule allI, rule impI)
 apply (simp add:Zset_def, simp)

 apply (subst val_t2p[of "νK (P n)

 apply (rule Zl_mI_mem_K, assumption+, simp)
 apply (simp add:value_mI_genTr1)
 apply (simp add:mgenerator2Tr3_1[of "n" "n" "n" "P" "m_zmax_pdsI K n P I"])
 apply (simp add:aadd_0_r)
 apply (simp add:value_Zl_mI[of "n" "P" "I" "n"])

(*** case j = n done ***)

 apply[k. (Zl_mIcdot>java.lang.NullPointerException
((mprod_exp K (K_gamma k) (Kb n P) n)m_zmax_pdsI K n P I))" "j"])

 
 apply simp
 apply (rule allI, rule impI)
 apply (simp add:value_mI_genTr3) apply simp+

 apply (thin_tac "Σe K (λk. Zl_mI K P I k java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
     mprod_exp K (K_gamma k) (Kb n P) nring_n_pd_mem_K "n"""
     Σk. Zl_mI java.lang.NullPointerException
            java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 apply (cut_tac nsum_suc[of ,e conjE
     mprod_exp K (K_gamma k)(b<>K
 apply (simp del:nsum_suc) apply (
        thin_tac java.lang.NullPointerException
         mprod_exp K (K_gamma k) (Kb n P) n P nK P n
> (Kb j"
     Σe Kga_in_principal
        mprod_exp K (K_gamma k KbK n P
K
m_zmax_pdsI) (τ
         (n - Suc 0±  (cmp (λk. Zl_mI K P I k 
         mprod_exp K (K_gamma k) (Kb n P) njava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
 apply (cut_tac   "
 prefer 2 apply simp prefer 2 apply simp
 

 apply (cut_tac n_in_Nsetn[of "n"])
 apply (simp add:transpos_ij_2)
 apply (subst value_less_eq1[THEN sym, of "ν (P j)"
 "(Zl_mI K P I j) r (mprod_exp K (K_gamma j) (Kb n P)
  n K n P I)" "Σe K (λx.(Zl_mI K P I ((τ n) x)) r
 (mprod_exp K (K_gamma ((τ n) x)) (Kb n P) n K n P I)) (n - Suc 0)"], assumption+)
 apply (simp add:value_mI_genTr3)
 apply (rule aGroup.nsum_mem[of "K" "n - Suc 0"], assumption+)
 apply (rule allI, rule impI)
 apply (frule_tac l = ja in transpos_mem[of "j" "n" "n"], simp+)
 apply (simp add:value_mI_genTr3)

 apply (subst val_t2p[of "ν
 apply (simp add:Zl_mI_mem_K)
 apply (simp add:value_mI_genTr1)

 apply (simp add:mgenerator2Tr3_1[of "n" "j" "j" "P"])

 apply (frule value_Zl_mI[of "n" "P" "I" "j"], assumption+)
 apply (erule conjE)
 apply (simp add:aadd_0_r)
 apply (cut_tac f = "λx. (Zl_mI K P I ((τ n) x)) r
       j nK)" in 
        value_ge_add[of java.lang.NullPointerException
         u0 _ " (m_zmax_pdsInP )" smto+)
 apply ( ultimaell o ma (f ++ g) x = (map_inv f +++ map_inv g) x"
 apply (frule_tac l = ja in transpos_mem[of "j" "n" "n"], simp+)
 applydd
 applyrule, impIapply ( add)

 apply(l = ja[ofj"n"+)

 applyapply simp
   metis)
 apply simp)
 apply (cut_tac k = ja in transpos_noteqTr[of "n" _ "j"], simp+) 
 apply (subst:list_induct2
 apply (cut_tac l = "(\\ggtrrow>v he \<>ome exE)
        +)
 apply (frule_tac y = "
 aadd_le_mono[of "0"  "nt (m_zmax_pdsI K n P I"
 apply (simp (casesh "
apply (subgoal_tac "LI K (java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 apply (rulemerge  =
                           "ant (m_zmax_pdsI K n P I)"], assumption+)

 apply (simp_ ]map_of_list  .empty
 apply
                   list_of_map_emptyp list_of_map.empty ["
apply
       frule val_LI_pos[of "n" "P" "I" "j"], assumption+,mfrom Fa have "map_of_list < Map.empty"
       frule apos_neq_minf[of "LI K (νK (P j)
 apply (substjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 apply (
 apply (subgoal_tac "\<forall 
 apply (frule m_zmax_gt_each[of n " λ
 apply simp
 apply (rule allI, rule impI)
 
  (subst val -
 apply (rule Zl_mI_mem_K, assumption+)
 apply (simp add:value_mI_genTr1)
 
 apply (simp add:mgenerator2Tr3_1[of "n" "" "j"""
 "m_zmax_pdsI K n P I"])
 apply (simp add:aadd_0_r)
 apply (simp add:value_Zl_mI[of "n" "P" "I" "j"])
 

  (in Corps) mI_gen_in_I:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n)] ==>
 (nsum K (λk. ((Zl_mI K P I k) r
 ((mprod_exp K (λl. (γ l)) (Kb n P) n)m_zmax_pdsI K n P I)))) n) I"
  (cut_tac field_is_ring, frule ring_n_pd[of n P])
  (rule ideal_eSum_closed[of n P I n], assumption+)
  (rule allI, rule impI)
 apply (frule_tac j = j in value_Zl_mI[of "n" "P" "I"], assumption+)
 apply (erule conjE)
 apply (thin_tac "(ν (P j)) (Zl_mI K P I j) = LI K (ν (P j)) I")
 apply (subgoal_tac "(mprod_exp K (K_gamma j) (Kb n P) n)m_zmax_pdsI K n P I)
  carrier (O P n)")
 apply (frule_tac x = "Zl_mI K P I j" and
 r = "(mprod_exp K (K_gamma j) (Kb n P) n)m_zmax_pdsI K n P I)"
 in Ring.ideal_ring_multiple1[of "(O P n)" "I"], assumption+)
 apply (frule_tac h = "Zl_mI K P I j" in
 Ring.ideal_subset[of "O P n" "I"], assumption+)
 apply (simp add:ring_n_pd_tOp_K_tOp[of "n" "P"])
 
  (subst ring_n_pd_def) apply (simp add:Sr_def)
 apply (simp add:value_mI_genTr1)

 apply (rule allI, rule impI)
 apply (case_tac "j = ja")
 apply (simp add:mgenerator2Tr3_1)

 apply (simp add:mgenerator2Tr3_2)
 apply (simp add:m_zmax_pdsI_def) apply (simp add:m_zmax_pdsI_hom_def)
 apply (simp only:ant_0[THEN sym])
 apply (simp add:aless_zless)
 apply (subgoal_tac "l n. (λj. tna (AMin ((ν (P j)) ` I))) l Zset")
 apply (frule m_zmax_gt_each[of n "λj. tna (AMin ((ν (P j)) ` I))"])
 apply (rotate_tac -1, drule_tac a = ja in forall_spec, simp+)
 apply (frule_tac j = ja in val_LI_pos[of "n" "P" "I"], assumption+)
 apply (cut_tac j = "tna (LI K (ν (P ja)) I)" in ale_zle[of "0"])
  (frule_tac j = ja in val_LI_noninf[of "n" "P" "I"], assumption+,
 frule_tac j = ja in val_LI_pos[of "n" "P" "I"], assumption+,
 frule_tac a = "LI K (ν (P ja)) I" in apos_neq_minf, simp add:ant_tna,
 simp add:ant_0) apply (unfold LI_def)
 apply (frule_tac y = "tna (AMin (ν (P ja) ` I))" and z = "m_zmax n (λj. tna (AMin (P j) ` I)))" in order_trans[of "0"], assumption+)
 apply (rule_tac y = "m_zmax n (λj. tna (AMin (ν (P j) ` I)))" and
 z = "m_zmax n (λj. tna (AMin (ν (P j) ` I))) + 1" in order_trans[of "0"],
 assumption+) apply simp

 apply (rule allI, rule impI) apply (simp add:Zset_def)
 


 We write the element
 eΣ K (λk. (Zl_mI K P I k) K ((mprod_exp K (K_gamma k) (Kb n P)
 n)K(m_zmax_pdsI K n P I))) n

 as mIg G a i n P I


 
 mIg :: "[_, nat, nat ==> ('b ==> ant) set,
 'b set] ==> 'b" ((4mIg_ _ _ _) [82,82,82,83]82) where
 "mIg n P I = Σe K (λk. (Zl_mI K P I k) r
 ((mprod_exp K (K_gamma k) (Kb n P) n)m_zmax_pdsI K n P I))) n"

 We can rewrite above two lemmas by using mIg G a i n P I

  (in Corps) value_mI_gen1:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n)] ==>
 j n.(ν (P j)) (mIg n P I) = LI K (ν (P j)) I"
  (rule allI, rule impI)
 apply (simp add:mIg_def value_mI_gen)
 

  (in Corps) mI_gen_in_I1:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n)] ==> (mIg n P I) I"
  (simp add:mIg_def mI_gen_in_I)
 

  (in Corps) mI_principalTr:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n); x I] ==>
 j n. ((ν (P j)) (mIg n P I)) ((ν (P j)) x)"
  (simp add:value_mI_gen1)
 apply (rule allI, rule impI)
 apply (rule Zleast_LI, assumption+)
 

  (in Corps) mI_principal:"[0 < n; distinct_pds K n P; ideal (O P n) I;
 I {0O P n)}; I carrier (O P n)] ==>
 I = Rxa (O P n) (mIg n P I)"
  (frule ring_n_pd[of "n" "P"])
  (rule equalityI)
 apply (rule subsetI)
 apply (frule_tac x = x in mI_principalTr[of "n" "P" "I"],
 assumption+)
 apply (frule_tac y = x in n_eq_val_eq_idealTr[of "n" "P" "mIg n P I"])
 apply (frule mI_gen_in_I1[of "n" "P" "I"], assumption+)
 apply (simp add:Ring.ideal_subset)+
 apply (thin_tac "jn. (ν (P j)) (mIgK n P I) (P j)) x")
 apply (frule_tac h = x in Ring.ideal_subset[of "O P n" "I"], assumption+)
 apply (frule_tac a = x in Ring.a_in_principal[of "O P n"], assumption+)
 apply (simp add:subsetD)
 apply (rule Ring.ideal_cont_Rxa[of "O P n" "I" "mIgK n P I"], assumption+)
 apply (rule mI_gen_in_I1[of "n" "P" "I"], assumption+)
 

  prime_n_pd

  (in Corps) prime_n_pd_principal:"[distinct_pds K n P; j n] ==>
 (P P n j) = Rxa (O P n) (((Kb n P) j))"
  (frule ring_n_pd[of "n" "P"])
  (frule prime_n_pd_prime[of "n" "P" "j"], assumption+)
  (simp add:prime_ideal_def, frule conjunct1)
 apply (fold prime_ideal_def)
 apply (thin_tac "prime_ideal (O P n) (P P n j)")
  (rule equalityI)
 apply (rule subsetI)
 apply (frule_tac y = x in n_eq_val_eq_idealTr[of n P "(Kb n P) j"])
 apply (thin_tac "Ring (O P n)", thin_tac "ideal (O P n) (P P n j)")
 apply (simp add:ring_n_pd_def Sr_def)
 apply (frule Kbase_hom[of "n" "P"], simp)
 apply (rule allI, rule impI)
 apply (frule Kbase_Kronecker[of "n" "P"])
 apply (simp add:Kronecker_delta_def, rule impI)
 apply (simp only:ant_0[THEN sym], simp only:ant_1[THEN sym])
 apply (simp del:ant_1)
 apply (simp add:prime_n_pd_def)


 apply (rule allI, rule impI)
 apply (frule Kbase_Kronecker[of "n" "P"])
 apply simp
 apply (thin_tac "jn. ln. (ν (P j)) ((Kb n P) l) = δ l")
 apply (case_tac "ja = j", simp add:Kronecker_delta_def)
 apply (thin_tac "ideal (O P n) (P P n j)")
 apply (simp add:prime_n_pd_def, erule conjE)
 apply (frule_tac x = x in mem_ring_n_pd_mem_K[of "n" "P"],
 assumption+)
 apply (case_tac "x = 0")
 apply (frule distinct_pds_valuation2[of "j" "n" "P"], assumption+)
 apply (rule gt_a0_ge_1, assumption)+

 apply (simp add:Kronecker_delta_def)
 apply (frule_tac j = ja in distinct_pds_valuation2[of _ "n" "P"],
 assumption+)
 apply (simp add:prime_n_pd_def, erule conjE)
 apply (thin_tac "ideal (O P n) {x. x carrier (O P n) 0 < (ν (P j)) x}")
 apply (simp add:ring_n_pd_def Sr_def)
 apply (cut_tac h = x in Ring.ideal_subset[of "O P n" "P P n j"])
 apply (frule_tac a = x in Ring.a_in_principal[of "O P n"])
 apply (simp add:Ring.ideal_subset, assumption+)


  (rule_tac c = x and A = "(O P n) p x" and B = "(O P n) p (Kb n P) j"
 in subsetD, assumption+)
  (simp add:Ring.a_in_principal)
 apply (rule Ring.ideal_cont_Rxa[of "O P n" "P P n j" "(Kb n P) j"], assumption+)
 apply (subst prime_n_pd_def, simp)
 apply (frule Kbase_Kronecker[of "n" "P"])
 apply (simp add:Kronecker_delta_def)
 apply (simp only:ant_1[THEN sym], simp only:ant_0[THEN sym])
 apply (simp del:ant_1 add:aless_zless)
  (subst ring_n_pd_def, simp add:Sr_def)
 apply (frule Kbase_hom[of "n" "P"])
 apply simp
 apply (rule allI)
 apply (simp add:ant_0)
 apply (rule impI)
 apply (simp only:ant_1[THEN sym], simp only:ant_0[THEN sym])
 apply (simp del:ant_1)
 

  (in Corps) ring_n_prod_primesTr:"[0 < n; distinct_pds K n P;
 ideal (O P n) I; I {0 P n}; I carrier (O P n)] ==>
 j n.(ν (P j)) (mprod_exp K (mL K P I) (Kb n P) n) =
 (ν (P j)) (mIg n P I)"
  (rule allI, rule impI)
 apply (simp add:mgenerator1)
 apply (simp add:value_mI_gen1)

 apply (simp add:value_Zl_mI)
 

  (in Corps) ring_n_prod_primesTr1:"[0 < n; distinct_pds K n P;
 ideal (O P n) I; I {0 P n}; I carrier (O P n)] ==>
 I = (O P n) p (mprod_exp K (mL K P I) (Kb n P) n)"
  (frule ring_n_pd[of "n" "P"])
  (subst n_eq_val_eq_ideal[of "n" "P" "mprod_exp K (mL K P I)
 (Kb n P) n" "mIg n P I"], assumption+)
  (simp add:mgeneratorTr4)
  (frule mI_gen_in_I1[of "n" "P" "I"], assumption+)
  (simp add:Ring.ideal_subset)
  (simp add:ring_n_prod_primesTr)
  (simp add:mI_principal)
 

  (in Corps) ring_n_prod_primes:"[0 < n; distinct_pds K n P;
 ideal (O P n) I; I {0 P n}; I carrier (O P n);
 k n. J k = (P P n k)(O P n) (nat ((mL K P I) k))] ==>
 I = iΠO P n),n J"
  (simp add:prime_n_pd_principal[of "n" "P"])
  (subst ring_n_prod_primesTr1[of "n" "P" "I"], assumption+)
  (frule ring_n_pd[of "n" "P"])
  (frule Ring.prod_n_principal_ideal[of "O P n" "nat o (mL K P I)" "n"
 "Kb n P" "J"])
 apply (frule Kbase_hom[of "n" "P"])
 apply (simp add:nat_def)
 apply (subst ring_n_pd_def) apply (simp add:Sr_def)
 apply (rule Pi_I, simp)
 apply (simp add:Kbase_Kronecker[of "n" "P"])
 apply (simp add:Kronecker_delta_def)
 apply (simp only:ant_1[THEN sym], simp only:ant_0[THEN sym])
 apply (simp del:ant_1)
 apply (simp add:Kbase_hom) apply simp

 apply simp
 apply (frule ring_n_mprod_mprodR[of "n" "P" n "mL K P I" "Kb n P"])
 apply (rule allI, rule impI, simp add:Zset_def)
 apply (rule allI, rule impI)
 apply (simp add: Zleast_in_mI_pos)

 apply (rule allI, rule impI)
 apply (subst ring_n_pd_def) apply (simp add:Sr_def)
 apply (frule Kbase_hom1[of "n" "P"], simp)
 apply (simp add:zero_in_ring_n_pd_zero_K)
 apply (frule Kbase_Kronecker[of "n" "P"])
 apply (simp add:Kronecker_delta_def)
 apply (simp only:ant_1[THEN sym], simp only:ant_0[THEN sym])
 apply (simp del:ant_1)
  simp
 

 

Messung V0.5 in Prozent
C=81 H=73 G=76

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.575Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen



NIST Cobol Testsuite



Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

      Eigene Quellcodes
      Fremde Quellcodes
     Quellcodebibliothek
      Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge