Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/Valuation/     Datei vom 29.4.2026 mit Größe 152 kB image not shown  

Quelle  Valuation2.thy

  Sprache: Isabelle
 

(**        Valuation2  
                            author Hidetsune 
                            Group You Santo
                            Department of Mathematics
                            Nihon University
                            h_coba@math.cst.cstnihon-acjp
                            June 24,2005
                             20  2007(

   chapter 1. elementary properties of a valuation
     section 8. approximation(continued)
    
   **)


theory Valuation2 Valuation1
importsValuation1
begin

lemmain Corps) OstrowskiTr8:\lbrakk K v;x <1^ - ==>
      0  (\^>r🚫a x)]
 -^> (x r ((1 r (1 -suba x)))))"
is_ringule.__gf ""]
apply frul aGroup.ag_mOp_closed[of " x]assumptionjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
       frule Ring.ring_one[of",
       frule aGro.agppeo K" "1\^sub>r" " -\<^>a
       frule Ostro[of v x], as+)
apply (case_tac "x = 1<^simpaddK \r"x \cdot>- "tion
       add.imes_x_0
       simprule"\^>r" "x \cdotr ±a x)",assumption,
       cut_tac, , simp:Ring,
       simp add cut_tac [of 1\^sub x r (1a x)"])
apply (frule aGroup.ag_pOp_closed[
       rule Rng.igtO_le smto+
 apply (cut_tac invf_closed[of "1 r (1a x)"])

 apply (cut_tac field_one_plus_frac3[assu,
        ubst val_t2p[of v], assumption+)
 apply (rule aGroup.ag_pOp_closed, assumption+,
        rule aGroup.ag_mOp_closed, assumption+, rule Ring.npCl,
        assumption+,
        thin_tac "1a x <ubr x r (1<sub -\<hyphen> K

        (1 -K(Suc) r (1 r (1a x)),
        subgoal_tac <subplusminus -K (uc (Suc 0))<^esup  x) r (1 -java.lang.NullPointerException
        simp value_of_inv v "1\> ±x \cdotr ±a x)"], tactic 
 thin_tac Ring.ring[of K x "(1🚫r"]
 apply (subst val_tp[of v, ssum+,
 rule aGroup.ag_ass, rule aGroup.ag_mOp_closed, a+)
 subst value_of_inv[of v "1\<^ubrr (1a x)"], tactic

 apply (rule contrapos_pp, simp+,
java.lang.NullPointerException
java.lang.NullPointerException
 frule aGrou.ag_eq_diffzero[THEN sym, of K "x \cdot\^>r (- 1 Ring.ring_tOp_closed, a+)
 assumption+,assumption+, rul aGroup.ag_mOp_closed, assumption++)
 apply (simp add:aGroup.ag_inv_inv[of K "1cut_tacfield_[of x], simp del:npow_suc,
 frule eq_elems_eq_val[of "x \               
java.lang.NullPointerException
 simp add:val_minus_eq value_of_one)
 apply (simp add:val_t2p,
 frule aadd_pos_poss[of "v x" "v (-.ring_tOp_, assumptule RR.nClos,
 simp,
 subst value_le ule ad[ v x" v (1\^ub>-\^sub>a x)"], assumption+,
 assumption+,+,
 rule Ring.ring_tOp_closed, assumption+,
 simp add:value_of_one> -K (Suc (Suc 0))
±r ±a x)",
java.lang.NullPointerException
 simp a:value,
 thin_tac "1<               ing_isri1autin,ipaddigrng_r_one,
 pad:add_0r, ruvlaxo4 assupin+
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 subst Ring.ring_distrib1,assump, simp add:Ring.ring_r_one,
 subst aGroup.pOp_assocTr43, assumption+,
 rule Ring.ring_tOp_closed, assumption+,
 simp simp add:aGroup.ag_pOp_commute[of K "1\\^su>"],
 subst Ring.ring_inv1_2, assumption+, simp, assumption+)

 apply simp

  (fru aGroup.ag_eq_diffzero[THEN sym, of K "x r (-r)" "-r"],
 frule Ring.ring_tOp_closed[of K x "(1 +)
 simp dd:aGru. pply (simp add:Goup.ag_inv_nv[ K "1\^>r"],
 frule aGroup.ag_eq_diffzero[THEN sym, f K"x \\><^sub>r ()= -<> ",
 assumption+, rule aGroup.ag_mOp_closed, assumption+)
java.lang.NullPointerException
java.lang.NullPointerException
 thin_tac "x d
  sm d:a_
 simp aad:l_t2p,
 frule aadd_pos_poss[of "v x" "v (-simp,
 simp)
 

  (in Corps) OstrowskiTr9:"[rueRn.ig_tOp_ccloe, asumpmption+,
 0 < ( (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
  (subfru aG.gmpclosof "" x"], ssm,
  (cut_tac field_is_ring, frule Ring.ring_is_ag[offrule RRingring_one[of "K"],
 frule aGroup.ag_mOp_clo[of "K" "x"], assumption+,
 frule Ring.ring_one[of "K"],
 frule aGroup.ag_pOp_closed[of "K" "1 " " ( -a x)"], assumption+,
 subst val_t2p, assumption+,
 cut_tac invf_closed1[of "1r ± x)" "v(🚫smpd:ig.in ule Ring.in, as)
  simp
 apply (rule aGroup.ag_pOp_closed, assumption+,
java.lang.NullPointerException
 
 apply (rule contrapos_pp, simp+,
java.lang.NullPointerException
  add:aGroup.ag_pOp_commute[of K "1on,sip supin)
 frule aGroup.ag_eq_diffzero[THEN sym, of
 apply (rule Ring.ring_tOp_clos
 rule aGrouag_mp_clo, aassum+)
 apply (simp add:aGroup.ag_inv_inv)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 thin_tac "x 🚫r) = -,
 simp add:val_minus_eq value_of_one,
 simp add:val_t2p)
java.lang.NullPointerException
 apply (cut_tac aadd_pos_poss[of "apply (frass+, r+,r aGroup.ag_mOp_closed, ass)
 apply (simp add:val_minus_e[THEN sym, of x)
 apply (subst aGroup.ag_pOp_commute, assumption+)
 e q_elo "x \cdotr" ""-\suba 1 "x \cdot\^sub>r (-a x ±r) = -r",
       apply (simp add:aless_imp_le, assumption) *)
 apply (subst[fv" "-^subplusminus1r)"], assumption+,
        rule aGroup.ag_pOp_closed )
               rule
        simp a add:val_mi value,
        simp add:value_of_one, si simp ad:val_t2)
        subst value_less_eq[THEN sym, of v "1\<^sub>r (1apply(simpv x "v (-\^ub>ax \plusminus 1\^>r)])
           assumption+, rule Ring.ring_tOp_closed, assumption+,
           simp add:value_of_one, subst val_t2p, assumption+,
           subst aadd_commute,
       rule aadd_pos_poss[of "v (1apply( [of<> x\plusminus\subr""x] simp
       simp, assumption, simp apply (subgoal_tac<sub> x > (1>- 0apply add symv x])
       
apply (cut_tac field_is_ring, frule Ring.ring_oneapply ( aGroup+)
       frule Ring.ring_one
       rule simp
              cut_tac invf_closed1 "1(subst va[of v"1<>plusminus -java.lang.NullPointerException
g_pOp_closedion
               ruleng_tOp_closedsumption+
       frule

applympRingOp_closedK(\ubr<-<sub>ax)"] assumption+) ap (
       frule ad:aGroup.ag_pOp_commusim add:value_of_one, siadd:vl_m,
        subst value_less_eqTH sym, v "<>"x<d><^sub>r (1suba x)"],
       rulep_closed
       simp add:aGroup.ag_inv_inv,
       frule eq_elems_eq_val[of java.lang.NullPointerException
        thin_tac " -java.lang.NullPointerException
p:us_eqeque_of_one
        frule_tac aGrouplemOp_closedosed umption
        mpl_t2pontrapos_pp
  apply (simp(q_elems_eq_valuletOp_closed (<^ub<plusminus -java.lang.NullPointerException
         cut_tac       rulepOp_closed
         tGroup,
         substfrulef ] assumption
         simp
   
 apply assumption
done

lemma (in Corps) OstrowskiTr10:" (s add::val_minus_eq[THEN sym, of v x])
       ¬ 0 v x] ==>.ag_pOp_com assumption+)
apply (frule OstrowskiTr6[of "v" "x"], assumption+,
       cut_tac invf_closed1[of "1java.lang.NullPointerException
       erule conjE, simp add:aneg_le, frule val_neg_nonzero[ofv ""
       (        ruleaGroupag_pOp_closed, assumption+,
apply (cut_tac field_is_ringfrule.ring_is_ag[ "K"],  v "<sub>"<^>a
             rule_df"" x]         aGrouperox<><>r(\^sub 1r"],
       frule Ring.ring_one[of "K"],
       frule aGroup.ag_pOp_closed[of rule aGrou.ag_mOp_closed, assumption+,
       subst val_t assumption+)
apply (subst val frule eq_eems_eq_v[o " <><sub>r (-a x ±r)" "-r" v],
       assumption+, subst aGroupb>r (🚫
       rule rule Rinring_tOp_closed, assumption+
       subst value_less_eq[THEN sym, of v simp add:val_t2p)
                                       <><^>>r (1<^u>r ±a x)" 1^r"], assumption+)
applyfruleRrngo,
       frule one_plus_x_nonzero[of "v" "          aGroupapos_ppppsimpjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
p
       subst val_t2p[ addvalue_of_one, simp:value_of_oneaGroupg_pOp_closedumption+

apply (simp  assumption
       frulee_less_eqf"" -
       simp add:lemmain) OstrowskiTr10valuation K v; x 
       simp add:val_minus_eqsimp add:aGroupag_pOp_commute
       frule val_nonzero_z[of"x] as+, erule exEapp (frule Ostro[of "" ""] ssu+,
       simpadd:a_zpz aminus, simp add:an[THEN sym] frule aGag_eq_diffz[ sym of K " <>^r -<subx<lusminus1<sub>r" "<^>a
       assumption)
done

lemmaule,simp:,,al_neg_nonzero""
         ==>
 apply (simp:vals_nonequiv_def
        cut_tacerule)+,assumption  cdotsub(-^>a x\plusminus 1r",
        simp add:valuations_ (cut_
 frule aarou._O_loe[f "x,umption,
        frule_tac a = 0 infruleg_one K,
           ate_tac,
        drule_tac a = "Suc 0" inmption(simp add:aadd_commute[applyt_nv"\subr x \cdot\^s>r (1]
 apply (drule_tac a = "Suc"in foalse,sp
        rotate_tac -1,
        drule_taca = = le Rn.ringOlsd,supto+
  subvaropgO_mut,sst,
java.lang.NullPointerException
        frule_tac v = "vv ddalue_of_one_,impne
         
         erule bexEassumption

        simpadd orps OstrowskiTr10lbrakk K v  <> carrierK; 
        frule_tac 2[f "],assumption+, simp add:aadd)
        nonequiv_ex_Ostrowski_elem, a
        ut_tac i[f "<>< <><> 1r ±
         \> v_equiv(Suc ( 0)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
        thin_tacpg_mOp_closedK""]       frule[of v""x], assumption+,erule,

 frule.ring_one "",
                          lines        assumption
 apply erule
         x = t andnCorps:"vals_nonequiv K ( 0) vv
apply (simp add:less_ant_def, (erule conjE)+,
       frule_tac x = s and v = "vv (Suc 0)" in val_neg_nonzero,
       assumption+, unfold less_ant_def)
apply (rule conjI, assumption+)

 apply (frule_tac s = s and t = t and v = "vv 0" in OstrowskiTr2,
        +,r a, assum+)
 apply (frule_tac s = s and t = t aand v "Sucin OstrowskiTr3Nset_Suc0 ),
         +, rule, assumption
 apply (subgoal_tac -1
        mprowski_elem_def,
        simp only: nset_m_m[of "Suc 0"], blast) 
       (* Here simp add:nset_m_m[of "Suc 0"] wouldn't work *)
 apply(ut_tac, fruleRing[ofK]
        rule Ring.ring_tOp_closed, assumption+frulelus_x_nonzerozero v-^ba",assumption,
        frule_tac s 1,,
        +, rule ale_neq assumptio+,
        apply (frule_ a = 0 in forall_spec, si,
    apply (cut_tc a = " 0"in simp
    apply assumption     (* in the above two lines, simp wouldn't work *) value_less_eq sym "v"-<,
done

(** subsection on inequality **)

lemma (in Corps,simp:_zpz aminusadd[THEN ,
                                 bexEjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
apply (induct_tac n\thin_tac\not v_equiv vv (Suc)
 rule allI
(** case (Suc n) **)
 apply(lin
       frule_tac n = n and vv = vv in restrict_vals_nonequiv1erule,
       frule_tac vv inrestrict_vals_nonequiv2,simp:valuations_def
frule_tac . n} vv 1)" forall_spec,
        assumption,
       rule_taca= co ff a = 0 in forallspec, simp,,
         assumption+ erule bexE)+)
apply (rdr a = "Suc"in forll_spec im
       cut_tac field_iSuca(rul cI sumpio
(**  case * * *  **)
 apply uex =s and y = t n Ring.r_tOp_cose[o "]ssumption
        case_tac "0
  d = andndt i Ostrskir5 smtton+
 apply blast


 (** case * * * **)
apply (simp
       case_tac " \>(vv bexE
       frule_tac =ucd Suc 0)"and vv =v n
         vals_nonequiv_valuation,
       simp,
       frule_tac v = "vv, assumption,
         assumption
       frule_tac x = "1 bexE,
       frule_tac x = t and y = "(1java.lang.NullPointerException
               ion)
apply (subgoal_tac"strowski_elem Kass, rule ale_neq_le assump+,
                       \<>\lines *)
       blast)
apply (subst apply (cut_tac x = "s v =vvinassumptionn
         mption eveimpldn
       thin_tac "Ostrowski_elem K (Suc fr x = s nd v "
         (compose nfoldess_ant_def
       thin_tac K (Suc n)
         java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         n_tacK (Suc n) (compose.hle n} vv 2))",
       thin_tac "0 Ostrowski_elemK  n) vv
Suc ( n" vvv = = vv and m = 0 in
                      vals_nonequiv_valuation, simp,
       ule_tac = vv 0"   n
          OstrowskiTr8 assumption   ndals_nonequiv2v2

apply (simp,
       thin_tac a ={hleSuc n  (skip inrall_spec
            0 < (composeassumptionrule 
       addompose_defe_defkip_def
       rule ballI,
       thin_tac0 \> v( 00)),
       thin_tac "Ostrowski_elem K (Suc n)
                    (o {h. h "
       frule_tac " vv (Suc (Suc 0)) t",
                     vals_nonequiv_valuation,
       simp cut_tac  =splusminusn _losededblast
 (** case * * * **)
 pplyc"j = Suc 0",,
        drule_tac x = "Suc 0"java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
        simp
        simpapply mp 
        rule_tac  =" (uc)) x  in
         , +,
        frule_tac j  jand n = n  nset_Tr51, assumption,
        drule_tac frule_tac n =assumption+,
        )
 (** case * * * **)
 
 applyfrule_tac=t  y = "(\^>r ± (1\<hyphen>K
       rule_tac v = "vv
       ging_tOp_closed_ assumption
       subgoal_tac "rule exE)
       rule_tac v vv j"and  = in
                    OstrowskiTr9 Ring.[of"")
apply (simp add:nset_defblast
       thin_tacvals_nonequiv strowski_elem_def
         compose <levvd=snd  in,mptionjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
       thin_tac
                   (compose simp,
       thin_tac "Ostrowski_elem K (Suc n)
                   (compose hh <(Sun) v (ski 2 "
 apply (subgoal_tac "s Suc n} vv (skip 2))",
         "Ostrowski_elem K (Suc (Suc n)) vv
                            (s r n = ""Suc (Suc n)" and =Suc 0  vvvv 
 prefer 2
 apply ( n = "Suc (Suc n)" andfrule_tac=Suc) and vv m=0in 
        als_nonequiv_valuationluation simp
     frule_tac v = "v 0 and x = t in
     rule Ring.ring_tOp_closed, assumption+,
     frule_tac x = "\^>r ±± in
     simp 
yrule njI
apply (thin_tacj
       0<compose (subgoal_tacOstrowski_elem n  
       apply (
       thin_tac"vals_nonequivK ( (Surule ballI,
       erule conjE)+,
       thin_tac "jnset (Suc 0) (Suc n).
            0 < (compose add:nset_def add"Ostrowski_elem K (Su )
       simp add:compose_def skip_def, rule ballI)
(** case *** *** **)
 apply (case_tac "        drule_tacSuc0" in bsp,
     rule_tac v = "vvcompose {h.he
     simp"\<e frule_tac nn i e_r1,smi,
     rule_tac v = "vv  r9
     simp add:vals_nonequiv_valuationrule_tacSucSucn) dvv 0
     (erulevals_nonequiv_valuation
     frule_tac v =vvand  tin
     drule_tac , assumption
 apply (simp add:nset_defsimp:Ostrowski_elem_def,erule conjE
done

lemma (in Corps) val_1_nonzero:"[valuation K v; x carrier K; v x = 1] ==>compose_d ski,
                               
apply (rule contrapos_pp, simp+,
       simp a:value_of_zero,
       rotate_tac 3drues,sm nly:_1[HN sy]
       simp del:ant_1)
done

lemmakvasnoevK(u )v
 
 Ostrowski_elem K (Suc n) vv x]
        m. 2
apply (cuttac fi, frule Ring.ring_is_agof "K]
       frule Ring.ring_one[of "K"],
       rulejandt_Tr51assumption
       uleluation n""" "0]
       ,
       simp add vv(Suc(Suc" x t OstrowskiTr10,
       frule val_1_nonzero[of "vv 0" "a"], assumption+) apply (
apply (frule vals_nonequiv_valuation[of "Suc n" "vv "]p
       frule val_nonzero_noninf[of "vvvvj"and x=ti
       frule val_unit_cond[of "vv 0" "x"], assumption+,
       frule_tac n = m in Ring.npClose[of "K" "x"], assumption+,
       frule aGroup.ag_mOp_closed (simp add:nset_f euecj),rl stT5 assmto+
       frule aGroup.ag_pOp_closed[of ""K""\<^ubr
apply (subgoal_tac "0  m,
       frule_tac x = "a " K (Suc n)
       value_less_eq[of "vv 0"],
       rule Ring.ring_tOp_closed, assumption+,
       rule Ring.npClose, assumption+, simp add: val_t2p,
       frule value_zero_nonzero[of "vv 0" "x], assumption,
       simp add:val_exp_ringapply ( "s r ((1 s r (1 -\<hyphen>K carrier K",
apply case_tac " 1\\^>r\^bsub>K
       frule_tac n = m in Ring.npZero_sub[of K"], simp
       simp add:value_of_zero) 
apply java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
apply (rotate_tac -1, drule not_sym,
      frule .ag_neq_diffnonzero[ "K"1<r" "x"],
      simp add:Ring.ring_one[of "K"], assumption+, simp,
      simp addva_x_n[HNy]
      cut_tac n1 = m in of_nat_0_less_i d:srwk_lmdf
apply rl oj)
       assumption)
pplyin_tac" m) = (0 < int m)",
      frule val_nonzero_z[of "vv 0" "1  ( " = Suc (Suc 0)" simp 
     xEtz_z
      simp only:ant_1[THENy

apply (subst aGroup v = "vv "xt 
       ruleleK"],
       assumption+,
       e_tac-1 d sym i,
        "vva < ± )^<^sub>r x^java.lang.NullPointerException
apply (simp add:val_t2p,(erule conjE,
       frulezero_nonzero vv"x], assumpt,
       simp add:val_exp hin_ta "vals_nonequivSuc (omposeh\> Suc n}  (skip 0) j ),
       simp add:aadd_0_r,
       cut_tac z = m in less_le_trans[of "0" "2"], simp, assumption+)                   (compose {h. h e ( 2))",
done

lemma (in Corps) Approx"<lbrakk>vals_nonequiv "s \<>< s (\^>r ±&hyphen ca K",
      x <> <>s ± -\<hyphen>K

        Longrightarrowr ±vv s rowskiTr9
apply ( Ostrowski_elem_not_one "n vv"",suto,
       cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
        frlRingigoe[of "K"
       frule aGroup.ag_pOp_closed[of "K" "1<^frule_tac r ±, simp
apply (simpp addrowski_elem_defi_elem_defjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
       frule_tac j inofnjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
       simp, 
       frule_tacthin_tac(nvv
        val_exp_ringerule)+,

apply (frule_tac v = "vv j" and x = "1r" and  y = "-<(com {h. h e} v (skip (Suc 0))j s)"
       value_less_eq, assumption+, simp
 applysimpadd:value_of_oneapply(se_tac j = Suc" simp,
        add:Osnset)
apply(simp add:value_of_one, ro -1, drule sym,
   add:as)
done

lemma ( forall>m 2 r ±a x)^m<^esup> \\<p> a \<cdot\m
\in air ;
     Ostrowski_elem K rul x= " - 0inc+tion
aacdot^>r (^<> mvv j  xjava.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95
apply frule[of x"],
                                          assumption+,

applyfrule_tacrle_tacm=j invals_nnequvv (rl orpp,sp
apply (subst val_t2p[of "vv j"], assumption+,
       rule Ring.npClose, assu+,si ln_
       cut_tac field_is_idom,
       frule_tac v1 = "vv j" and x1 = x and n1 = m in
       val_exp_ringTHEN sym], ssumptin+, imp
done

lemma (in Corps) AppOstr K (Suc n) vin.pC[of K x"]+,
     a \>carrier K; a <  K;
      K ( n  x;  \>  (Suc( n)<> \Longrightarrow>
               \        Ringof"],
apply (frule Ostrowski_elem_nonzero[of "n" "vv"frule v[f Suc n""v""],
      subgoal_tac "[of"" 1\^>r" "simp
      simp,
       "\<foralln>r x^\^s>K n\<^>)
refer
apply (rule frul a_oenif[o" "], a+,
         assumption+, simp add:nset_def)frule val_unit_cond[of "  "], ass+,
apply (frule_tac m j i valsof "Sucvv
       simp add:nset_deffruleK""x"], assumption+,
       frule val[of "vv ngsumption:_java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
       simp addOstrowski_elem_def
frule, fold,
       ule_tacssumption(ase_tac " = 1<sub>r\^u>\        rl ng.rintpled, assumpo,
apply (frle Ostrowski_elm_fr e_tcn= m i nnZero_ub[o "K] mp
       frule add)       fruleo_nonzerof 0"" assumption
       frule_tac=za x= in,
       simp add:asprod_amult( "x = 1" ( -,
done

lemma (in Corps) Approximation1 add:val_[THEN sym],
       0; x carrier K;
      Ostrowski_elem K (Su n) vv x; j ==>
        m. l < m a x)^±K m
apply (frule vals_nonequiv_valuation[of "Suc(te_tac
       mpt_def
       frule Approximation1_5Tr5simpneK" supto+ im,
               assumption+, erule exE,
       cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
       subgoal_tac "and< m" in a_b_exchange, simp
java.lang.NullPointerException
 apply (simp add:Approximation1_5Tr3, blast)
 apply (rule allI, rule impI,
        drule_tac erueexEsp,sm dardauaz
        frule_tac x = "(1a x)^ and y = "a r (x^" in
           value_less_eq[of "vv j"],
        rule Ring.npClose,assumption
        rule aGroup.ag_pOp_closed, assumption+, simp 0 (a <>\^>r x^\^>K m
±a x)^ = vv 0 (a r x^")
        simp add:aGrouag_mOp_closed)
 apply (rule Ring.ringtOp_c, assumption+,
        rule Ring.npC, assump+,
        simp add:Approximation1_5Tr3,sim add:aadd_0_r,
        frule sym, assu)
done

lemma (in Corps) Approximation1_5Tr7:"[\lbrakkvals_nonequiv
      x  \Longrightarrow
      vals_nonequiv K (Suc n🚫) = 0"
      (l.
                 (1^su> <> -\<^ba(cuta = "0 < m" and b = " intnb_exchange
apply (induct_tac frule<= int,
       rule impI, erule conjE impt_m_mapply( :aGroup,  addnset_def
       frule[of "uc "vv" " 0"], simp,
       frule Approximation1_5Tr6[of "0        simp
applyfrule[of0vv], simp,
       frule val_1_nonzero[of "vv 0" "a"], val_exp_ring sym+) 
       assumption)
(** case n **) mmute] ssumption
apply(rule.losemption+, rule.ring_tOp_closed"],
       frule_tac = in rest[of _ "vv
        restrict_Ostrowski_elemvv
          , simp
       erulejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
       frule_tac :asprod_n_0
        [done
       frule_tac n = "Suc (Suc n)" in vals_nonequiv_valuation[of _ "vv" 
        "0"],simp z  m  less_le_translemma in) Approximation1_5Tr4>  (Suc; 
       rule
       simp add:nset_def)
apply (erule,
       subgoal_tac <> K; Ostrowski_elem Suc n vv>nset (Suc 0) (Suc n)]   vv(1^> \plusminus -<> x)^java.lang.NullPointerException
         vj1<r<> -<\^>plusminus <>K m

       blast,
      simpnset_Suc
done   

lemma m=als_nonequiv_valuationiv_valuationionSuc",
    n_val K (vv 0) = vv 0] vals_nfrule_tac v1 " j"and "\^ub \plusminus -<a x d1  n
     val_t2p[  jand "1<>r"  yxn
apply als_nonequiv_valuation n"""""] simp) apply (
       frule (s add:ielfield_isidom,,
       rename_tac a) apply (
       cut_tac n n in Ostrowski) apply (
       simp a:asprod_n_0)
  apply (
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
       frule_tac = aaad x x inAprxmo_5r1o """java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
       assumption
       simp, assumption+)
ximation1_5Tr7[of _ "vv" _ "n"],
       simpj\cdottsubr (x^=aaa (vv j  x)"
       simp, erule exE,
xcobounded1nd[o2],
       cut_tac b = "Suc l" in max.cobounded2[of _ "2"],
       cut_tac n = l in lessI,
       frule_tac x = l and y = "assumption,
         less_le_trans field_is_ring .ring_is_ag])
              "^s x^<bs>K n

       drule_tac a = "max 2
       drule_tac"j"x1  in
 
       carrier m = in norpsspproximation1_5Tr5\>vals_nonequiv n)vv 
       blast,
       cut_tac field_is_ring Ringring_is_ag[of,
       rule aGroup.ag_pOp_closed, assumption,  Ring., assumption+,
       rule aGroup.ag_pOp_closed, assumption+, simp val_nonzero_z[of "vv j" a],assumption exE
       simp:aGroup, rule.ring_tOp_closed+,
       rule.frule, fold,
done

lemma:"k \le> (frOstrowskielemof "" " x]sumption
apply impZset_def)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
done

lemma transpos_eq:"(τ dd:asprod_amult a_z_z a_zp
by (simp add:transpos_def)

lemma(in Crp)rao_l_oeu:[;
      j carrier K; a \noteq<>; x \incar K;
apply (:vals_nonequiv_def)
 apply (frule conjunct1, fold vals_nonequiv_def)
 apply (simp add:valuations_def, rule conjI)
 apply (rule allI, rule impI)
 apply (case_tac " = 0", imp,
        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"vv jj (1<sub>r <plu> -" and y = "r (<bsup)" in
        simp add:vals_nonequiv_valuation)value_less_eq[of "vvj"],
 apply (as"j = 0,mp
 yt_tac n" j], simp, as,
        rule not_sym, assumption+)
 apply (simp add:vals_nonequiv_valuation,
         allI, rule impI)+, rule impI)
 apply (case_tac "  "simppa:ass,
        simp add:vals_nonequiv_def,
        cut_tac transpos_inj[of "0frule
 apply (frule_tac x = ja and y = l in
                       "{j. j (Suc n)}"], simp,x \> K\rbrakk Longrightarrow> 
  (cut_tac   in[of"0 " n" "j", si, assumption+,
        simp, assumption,
       cut_tac l = l in tra[of "0" "Sucimp
        simp,(vvr ±a x)^r (x^) = 0)))"
 apply (simp add:vals_nonequiv_def,
        mp,smo rent_masmpin)
done

definition
  Ostrowski_base :: "[_, nat ==> 'b ==> 0"], as+)
                             (Ω _ _ [90,90,91]90) where
  "Ostrowski_base Knonzeroof " "a",asutn, padntf
                            trowski_elemn (v\circ<><^bsub>>0 \^sub) x)))"

definition
  App_base<>bRightarrow ant, nat] <ightarrow(
  "App_base K vv n = (λ, sim,
                      = 1) k <> \<tau\) k x) = 0))))"
  (* Approximation base. *)

lemma (in[of" "" "] +,
      Ostrowski_baseKvv n) <>  carrier K"
apply (rule Pi_I, rename_tac l,
       simp add:Ostrowski_base_def,
       frule_tac j = l in transpos_vals_nonequiv[of n vv], simp,
        Ostrowski[of n])
applysimp add:nset_def)
       rule someI2_ex, blast, simp)
done

lemma (in Corps) Ostrowski_base_mem:"vals_nonequiv K (Suc n) vvvvr ±a x)^±K m
         
by (rule allI, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       etrowski_base_hom"],
       simp add:funcset_mem del:Pi_I')

lemma (in Corps) Ostrowski_base_mem_1:"[ vals_nonequiv_valuation "Suc n"""0,imp
       j  (Suc n)]
by  Suc

lemma (in Corps) Ostrowski_base_nonzero
       j  (ΩK vv (Suc n)
"
apply (simp add:Ostrowski_base_def,
       frule_tac j = j in transpos_vals_nonequiv[of "n" "vv"],
                      +,
       cut_tac Ostrowski[of "n",
       drule_tac a = "vv
        someI2_ex) 
apply (thin_taccut_tac b ="Suc l" in.cobounded2 _"",
       eruleconjE
apply (rule_tac vv = "vv f x = l an y = "Suc=max l)" in

done

lemma (in Corps) Ostrowski_base_pos:"[^r ±suba x)^±K (max 2 (Suc l)) 
      j  Suc n; ja 
apply (simp field_is_ring Ring[of],
       frule_tac in[of " v],
       assumption+,
       cut_tacOstof "n"],
       drule_tac a = "vv τ in forall_spec, assumption)java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
apply (rule omeI2_ex
       thin_tac "
       simp add:Ostrowski_ele
apply (case_tac " = 0", simp, cut_tac transpos_eq[oof "j"],
       simp add:nset_def, frule Suc_leI[of "0" "j"],
       frule_tac a = j in forall_spec, simp, simp)
apply (case_tac "j = 0", simp,
       frule_tac x = ja in bspec, simp add:nset_def,
       cut_tac transpos_[of"" " n" "ja )
apply (frule_tac x = j in bspec,uledef
       cut_tac transpos_id[of "0" "Suc n" "ja" "j"], simp+) 
done

lemma (in Corps ttranspos_ij_1 n" j",tion
      
        pos_ij_2 n" "] simp assumption,simp,
apply (rule, rule impI,
       rename_tac k,
       subst App_base_def)
 apply (case_tac "k = 0", simp, simp addcase_tac add) 
        frule[ofvv,
        rule someI2_ex not_sym+)
 apply frule_tac j=kin transpos_vals_nonequivof "n" "vv"],
                 simp add:nset_def,        ruleallI,ruleimpI)+  impI
        frule_tac =vv τ inroximation1_5P
 apply (simp add:cmp_def, subst transpos_ij_1[of "0" "Suc n"], simp+,
        stSuc
 apply (rule someI2_exule_tactranspos
done

lemma (in Corps) Approzimation1_5P2"{j <>(c}], s, simp, assumption+)
           [of "0Sucn""]imp
          ==>intranspos_mem simp
apply (simp add:applymp
applyOstrowski_base_ nat 'b ==><Rightarrow (nat ==>')"
       rule someI2_ex,                             \open\Omega>
      frule Approximation1_5P[of "n" "vv"], simp , blast,
       simp add:Kronecker_delta_def, rule impI, (erule conjE)+,
       frule_tac x = i in bspec,ip d:ntdef supo)

apply (frule_tac j = j in transpos_vals_nonequiv[of "n" "vv"], simp,
       fruleApprox[of "n" "vv τ],
       simp add:cmp_def, v <><>hcarrier K  τ0 j

       
apply (simp add:cmp_def,
         case_tac "i = 0", simp
         simp add:transpos_ij_1 add,
         rule someI2_ex, blast,
         thin_tac "carrier K.
            vv j x = 1 (\<forallapply l,
        (econjE)+,
         drule_tac x = j frul j = l in transpos_val[of n vv], simp,
         simp add:transpos_ij_2)

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

apply (simp, rule someI2_ex, blast,
       thin_tac " ) ==>
                     (nset (SucSuc n.vv(\tau ja) x = 0)",
       (erule conjE)+,
       drule_tac x = i in bspec, simp add:nset_def,
       cut_tac transpos_i[o 0 " j] +)
done

(*
lemma (in Corps) Approximation1_5:"\<lbrakk>vals_nonequiv K (Suc n) vv; 
  \<forall>j \<le> (Suc n
  \<exists>x\<in>{h. h \<le> (Suc n)} \<rightarrow> carrier K. leSuc<rbrakk>  \<Longrightarrow> (\<Omega>\<^bsub>K vv Suc\) j \<noteq> \<zero>"
                              ((vv i)  (x j) = \<delta>\<^bsub>i j\<^esub>)" *)


lemma onjE
   (vv τ andin Ostrowski_elem_nonzero"]
  
                              ((vv i) (x j) = δ
apply (frule App_base_ho
 apply (subgoal_tac "( Sucja Suc n; ja  0 < ((vv )<>java.lang.StringIndexOutOfBoundsException: Index 135 out of bounds for length 135
                 (subst
        blast) 
 apply
 apply (rule Approzimation1_5P2, assumption+, simp+) 
done

lemma (in Corps) Ostrowski_baseTr0:"[vals_nonequiv K (Suc n) vv; l (Suc n) ]
   ==> 0 < ((vv l) (1r ± -a (Ostrowski_base K vv (Suc n) l)))
  (m{h. h (Suc n)} - {l}. 0 < ((vv m) (Ostrowski_base K vv (Suc n) l)))"
apply (simp add:Ostrowski_base_def,
       frule_tac j = l in transpos_vals_nonequiv[of "n" "vv"], assumption,
       cut_tac Ostrowski[of "n"],
       drule_tac a = "vv τ l" in forall_spec, assumption) 
apply (erule bexE,
       unfold Ostrowski_elem_def, frule conjunct1,
       fold Ostrowski_elem_def, 
       rule conjI, simp add:Ostrowski_elem_def)
apply (case_tac "l = 0", simp, simp add:transpos_eq,
       rule someI2_ex, blast, simp,
       simp add:transpos_ij_1,
       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 (1r ± -a x)
                      (jnset (Suc 0) (Suc n). 0 < vv j x)",
       rule ballI, simp add:nset_def) 

apply (rule ballI, erule conjE,
       rule someI2_ex, blast,
       thin_tac "jnset (Suc 0) (Suc n). 0 < vv ((τ l) j) x",
       (erule conjE)+)

apply (case_tac "m = 0", simp,
       drule_tac x = l in bspec, simp add:nset_def,
       pdanspos_ij_2
       drule_tac x = m in bspec, simp add:nset_def,
       simp add:transpos_id)
done  

lemmaCorpsseTr1vals_nonequiv K (Suc n) vv; l 
     ==> 0 < ((vv l) (1java.lang.NullPointerException
by (simp add:Ostrowski_baseTr0)

lemma (in CorpspIgCloseapply( dngClose
        l 
        0 < ((vv m) (Ostrowski_base K vvut_tac^<supK j
Suc nSuc j
x^"
apply altans)
applysimpmp
done

lemma Nset_have_two:"
apply (rule contrapos_pp, simp+,
       case_tac "j = Suc n", simp,
       drule_tac a = 0 in forall_spec, simp, arith) 
 apply (drule_tac aSuc nrall_specimp
done(p:f_nat_0_less_iff

lemma (in Corps) Ostrowski_base_npow_not_oned and in
       vals_nonequiv K (Suc n) vv]
                              1K j
Suc n
Suc j
applysimp add:Ring.npClose,impTHEN
       rule mp
       frule Ostrowski_base_mem_1[of "0"imp
       frule Ring.npClose[of "K" "(Ω\apply
       frule Ring.ring_one[of "K"],
       frule aGroup.ag_mOp_closed[of K ""<"and b = "int 0 < int j" in a_b_exchange
       frule aGroup.ag_pOp_closed[of "K" "1a ((ΩK vv (Suc n)K N

       assumption+)
apply (frule aGroup.ag_pOp_add_r[of "K" "1java.lang.NullPointerException
           java.lang.NullPointerException
        simp add:aGroup.ag_inc_zero, assumption+,
        thin_tac "1a ((<Omega\K vv (Suc n)
) j^) =zero
 apply (simp add:aGroup.ag_pOp_assoc[of "K" "1r ±a (aa^)^
 apply (simp add:aGroup.ag_l_inv1, simp add:aGroup.ag_r_zero aGrule RignpCls,asmto+,
  apply (subgoal_tac "edtionmption
                                 0 < (vv m ((Ωjava.lang.NullPointerException
 apply (cut_tac Nset_have_two[of "j" "n"],
        erule bexE, drule_tac a = m in forall_spec, simp,
       thin_tac (<><^bsub>K vv (Suc)<esub<bsup^esup ±\^a ((Ω j^ 
       frule_tac f = "vv m" in eq_elems_eq_val[of "1r ±a ((1 -K N
K N
carrier K"
       thin_tacapply (cut_taculeag
 apply (frule_tac m = m in vals_nonequiv_valuation[of "Suc n" "vv"],
        sumption+, 
        frule_tac v1 = "vv m" and n1 = N in val_exp_ring
         of  _ "(Ω\<lbrakkvaluation carrier K; aa
        simp add:Ostrowski_base_nonzero, simp, simp add:value_of_one)
  (cutied_i_ig rlRn.igi_go K]
        frule_tac x = "vv="
        assumption, simp add:less_ant_def, simp, simp,
        rule allI, rule impI, rule impI,
        rule Ostrowski_baseTr2, assumption+)
done

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

lemma painof_ssum1x <> cari<>
                (1r ± x)^ n = nsum R (λi. >i ×RR i
apply (cut_tac ring_one, frule npeSum2[of "1 n.  ) <>carrier l  
       simp add:npOne, subgoal_tac "(j::nat). (x^ j({h. h p>-a (b j))))
apply (simp add:ring_l_one, rule allI, simp ax \<><
done

lemma (in Ring) tail_of_expansion:" carrieris_ringng_is_ag
             (nsum R (λ i. (java.lang.NullPointerException
apply (cut_tac ring_is_ag)
apply (frule expansion_of_sum1[of "x" "Suc si dap._Opcsd m add:i.rg_ne
       simp del:nsum_suc binomial_Suc_Suc npow_suc,
       thin_tac "(1 x)^= Σ(Suc n)ix^\R i
apply (subst aGrouproupOp_commutessumption
              substsoc
applycut_tac
       simp ption
done

lemma (in Ring) tail_of_expansion1:"x carrier R ==>
=x\><^sub>r (nsum R (λ i. (^bsub>(Suc i)RR i\^)) n) ±r
apply (frule tail_of_expansion[of "x" "n"],
       simp del:nsum_suc binomial_Suc_Suc npow_suc,
       subgoal_tac "e K g n rier
       cut_tac ring_one, cut_tac g_is_ag
prefer 2  apply(simp:nsClose
apply (rule aGroupg_pOp_add_r[ R" 1\<>"
       rule aGroup.nsum_mem, assumption+, rule allI, rule impI,
       rule nsClose, rule npClose, assumption)
apply (rule ring_tOp_closed, assumption+,
       rule aGroup.nsum_mem, assumption+, blast, simp add:ring_one)
apply (subst naappcut_taa x(u) \cdot>r ±a (b (Suc n))) ±a (x (Suc n))" 
apply (rule aGroup.nsum_eq, assumptionulele
       leallI
       ruleg_tOp_closed
       assumption) 
apply (rule allI, rule impI)
apply (subst nsMulDistrL, assumption, simp add:npClose, 
       frule_tac n = j in npClose[of x], simp add:ring_tOp_commuteondgng_one
done 

lemma (in Corps) nsum_in_VrTr:"valuationK vLo
       (
       0
apply (induct_tac n)
 apply (rule impI, erule conjE, simp add:val_pos_mem_Vr)
apply (rule impI, erule conjE)
apply (frule Vr_ring[of v], frule Ring.rin+,
       frule_tac x = "f (Suc n)" and y = "nsum K f n" in
         aGroup._ldof"]java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
       substassumption+
       rule ,
apply (simp, subst Vr_pOp_f_pOpjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
       substrule._sedmptiong_one
       simp+)
apply (subst.ag_pOp_commute,assumption+, simp add:val_pos_mem_Vr
       assumption
done

lemma (in Corps) nsum_in_Vr:"[
       j n. 0 a (x l)"], assumption+,
apply (simp add:nsum_in_VrTr)
done

lemma(norps_em_in_Vrlbrakk>valuation K v; 
       .ag_mOp_closed+, simp
         (nsum ) <n> carrier (Vr K v)"
by (rule nsum_in_Vr)

lemma (in Corps) val_nscal_ge_selfTr:"[, simp
       ==>  v x   v (n ×, assumption,
apply (cut_tac field_is_ring, induct_tac n, simp)  
apply (simp add:value_of_zero,
       simp,
       frule_tac y = java.lang.NullPointerException
       rule Ring.nsClose, assmpton
apply-sb>a(x l)", simp
       frule Ring.ring_is_ag__r _ -<sub>a(l),assumption+,
       frule_tac =  in.nsClose K x] +,
       simp:aGroup)
done

lemma (in allI impI,
             v  \>(v (1 -r ±<bsup>K (Suc n)

apply(ut_tacgng_is_ag",
       case_tac "x = 0",
       simp, frule Ring.ring_one[of "K"], simp add:aGroup.ag_r_zero,
       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"])
apply (subgoal_tac "(nsum K (λi.  nC i × x^ i) n)carrier (Vr K v)",
       frule Vr_mem_f_mem[of "v" "(nsum K (λi.  nC i × x^ i) n)"],
       assumption+,
       frule_tac x = x and y = "nsum K (λi.  nC i × x^ i) n" in
       Ring.ring_tOp_closed[of "K"], assumption+,
       subst aGroup.ag_pOp_commute[of "K" _ "1r"], assumption+,
       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+,
       simp del:binomial_Suc_Suc add:aGroup.ag_r_inv1, subst aGroup.ag_l_zero,
       assumption+,
       rule aGroup.ag_mOp_closed, assumption+, simp add:val_minus_eq)

apply (subst val_t2p[of v], assumption+) apply (
       simp add:val_pos_mem_Vr[THEN sym, of v
                  "nsum K (λi.(C + C i× x^ i) n"],
       frule aadd_le_mono[of "0" "v (nsum K (λi.(C + C i× x^ i) n)"
         "v x"], simp add:aadd_0_l, simp add:aadd_commute[of "v x"])

apply (rule nsum_mem_in_Vr[of v n "λi. nC i × x^ i"], assumption,
       rule allI, rule impI) apply (rule Ring.nsClose, assumption+) apply (simp add:Ring.npClose)

apply (rule allI, rule impI)
apply (cut_tac i = 0 and j = "v (x^ j)" and k = "v ( nC j × x^ j)"
       in ale_trans)
 apply (case_tac "j = 0", simp add:value_of_one)
 apply (simp add: val_exp_ring[THEN sym],
        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" and b = "int 0 < int j" in a_b_exchange,
        assumption, thin_tac "0 < j", thin_tac "(0 < j) = (int 0 < int j)")
apply (simp del: of_nat_0_less_iff)

apply (frule_tac w1 = "int j" and x1 = 0 and y1 = "ant z" in
         asprod_pos_mono[THEN sym],
        simp only:asprod_n_0)

 apply(rule_tac x = "x^ j" and n = " nC j" in
       val_nscal_ge_selfTr[of v], assumption+,
       simp add:Ring.npClose, simp add:val_exp_ring[THEN sym],
       frule val_nonzero_z[of "v" "x"], assumption+, erule exE, simp)
 apply (case_tac "j = 0", simp)
 apply (subst asprod_amult, simp, simp add:a_z_z)
apply(
        simp only:ant_0[THEN sym], simp only:ale_zle,
        cut_tac m1 = 0 and n1 = j in of_nat_less_iff[THEN sym])
apply ( frule_tac a = "0 < j" and b = "int 0 < int j" in a_b_exchange,
        assumption+, thin_tac "0 < j", thin_tac "(0 < j) = (int 0 < int 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
done

lemma (in Corps) ApproximationTr0:"aa  carrier K ==>
            (1r ± -a (aa^ N))^ N  carrier K"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
       rule Ring.npClose, assumption+,
       rule aGroup.ag_pOp_closed, assumption+, simp add:Ring.ring_one,
       rule aGroup.ag_mOp_closed, assumption+, rule Ring.npClose, assumption+)
done

lemma (in Corps) ApproximationTr1:"aa  carrier K ==>
            1r ± -a ((1r ± -a (aa^ N))^ N carrier K"
apply (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+)
done

lemma (in Corps) ApproximationTr2:"[valuation K v; aa  carrier K; aa  0
     0  (v aa)] ==> (int N) *a(v aa)  (v (1r ± -a ((1r ± -a (aa^ N))^ N)))"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"],
       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)

apply (frule_tac n = N in Ring.npClose[of "K" "aa"], assumption+,
       frule ApproximationTr[of v "-a (aa^ N)" "N - Suc 0"],
       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)
apply (simp add:val_minus_eq, simp add:val_exp_ring[THEN sym])
done

lemma (in Corps) eSum_tr:"
 n. (x j)  carrier K)  
 (  n. (b j)  carrier K)  l  n  
 ( j({h. h  n} -{l}). (g j = (x j) r (1r ± -a (b j))))  
  g l = (x l) r (-a (b l))
 (nsum K (λj  {h. h  n}. (x j) r (1r ± -a (b j))) n) ± (-a (x l)) = 
                       nsum K g n"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (induct_tac n)
 apply (simp, rule impI, (erule conjE)+,
       simp, frule Ring.ring_one[of "K"], subst Ring.ring_distrib1,
       assumption+,
       simp add:aGroup.ag_mOp_closed, simp add:Ring.ring_r_one,
       frule aGroup.ag_mOp_closed[of K "0"], assumption+,
       frule Ring.ring_tOp_closed[of "K" "0" "-a (b 0)"], assumption+,
       subst aGroup.ag_pOp_commute[of "K" "0" _], assumption+,
       subst aGroup.ag_pOp_assoc, assumption+,
       frule aGroup.ag_mOp_closed[of "K"],
       assumption+)
 apply (simp add:aGroup.ag_r_inv1, subst aGroup.ag_r_zero, assumption+, simp)
apply (rule impI, (erule conjE)+)
 apply (subgoal_tac " (Suc n).  ((x j) r (1r ± -a (b j)))  carrier K")
apply (case_tac "l = Suc n", simp)
 apply (subgoal_tac "Σe K g n  carrier K",
        subgoal_tac "{h. h  (Suc n)} - {Suc n} = {h. h  n}", simp,
        subgoal_tac "j. j  n  j  (Suc n)",
        frule_tac f = "λu. if u  Suc n then (x u) r (1r ± -a (b u)) else 
        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 (cut_tac a = "x (Suc n) r (1r ± -a (b (Suc n))) ± -a (x (Suc n))" and
       b = "x (Suc n) r (-a (b (Suc n)))" and
       c = "Σe K g n" in aGroup.ag_pOp_add_l[of K], assumption)
 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.ring_one,
        simp add:aGroup.ag_mOp_closed,
        simp add:Ring.ring_r_one) apply (
        frule_tac x = "x (Suc n)" and y = "x (Suc n) r (-a (b (Suc n)))" in
        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,
        subst aGroup.ag_r_zero, assumption+,
        simp add:Ring.ring_tOp_closed aGroup.ag_mOp_closed, simp,
        rotate_tac -1, drule sym, simp) apply (
        thin_tac "Σe K g n ± x (Suc n) r (- ->a Omega\^> vv n)<) j^^carrier K",
java.lang.NullPointerException
   apply (subst aGroup.ag_pOp_assoc[THEN sym], assumption+,
          rule Rinring_tOp_closed, assumption+, simp,
          rule aGroup.ag_, assumption+, simp add:Ring.ring_one,
           aGroup.ag_mOp_clos, assumption+, simp,
          rule aGroup.ag_mOp_closed apply (r (rule Ostrowski_bae_npow_no) apply si apply assumption+
          simp, rule equalityI, rule subsetI, simp, rule subsetI, simp)
  apply (rule aGroup.nsum_mem, assumption+,
         rule allI, rule impI, simp)
defer
  (eal uemI
  apply (cap addOstosi_ae alysmpio
         egrgtplsd smti i,
         rule aGroap (ia "0  j (\^ubplusminus-a ((Ω j))")
         rule aGroupapp (cut_tac b = "vvr ± -🚫vv(\^>r <> K vv ( n\^>) j)\bsup>K N

         rule Ring.simp
         rule.ag_pOp_closed+, simp:Ring,
         rule aGroup.ag_mOp_closed, assumption, simp, simp) (* end defer *)

 apply aGroup, assumption+
        rule aGroup.nsum_mem, assumption+,
        rule allI, 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 (frule_tac    in[ofn "vv,spo+
        roupgmp_od supo,p,
        subste 1 ru_c = frl_pc plasmin
        rule Ring.ring_tOp_closed, assumption, simp,apply fueta npc im)
        rule aGroup.ag_pOp_clos apply (rul (rule ales) aply bst
 apply (rueaGou.g_Op_lsd,asmto,sm,
        rule aGroup.ag_mOp_closed, assumption+, simp,
        subst aGroup.ag_pOp_assoc[THEN sym], assumption+,
        rule aGroup.nsum_mem, assumption+,
        rule allI, rule impI, simp,
        rule aGroup.ag_mOp_closed, assumption, 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)app (h_a" j (x janoteq - 
   (subgoal_tac e K (λa. if a (Suc n) then x a r(1🚫
         else undefined) n ±a (x )=
         Σz = " j (xja  add_le_mono
         -^>a (x ),simp
         rule aGroup     (a (1 -\<^bsubSuc) ja)^^" and z = "vv j (x ja)"
         rule aGroup.nsum_mem, assumption+,
         rule llI, rule impI si,
         rule aGroup.nsum_mem, assumption+,
         rule allI, rule impI, simp,
         rule aGroup.ag_mOp_closed, assumption, simp,
         rule aGroup.nsum_eq, assumption+,
         rule allI, rule impI, simp, rule allI, rule impI)
   apply sim
   apply (rule allI, rule impI, simp)
done

lemma (in Corps) eSum_minus_x:"[ in
        n. (b j)  ;
       j
       gl=x l 🚫
       (nsum K (λjrule.ag_mOp_closed, rule.ring_one)
                        nsum K g n"
by (cut_tac eSum_tr[of "n" "x" "b" "l" "g"], simp)

lemma (in Ring) one_m_x_times:" ja,
 (1java.lang.NullPointerException
apply (cut_tac ring_one, cut_tac ring_is_ag,
       app_lbnat 'b ==> 'b, nat] ==>
       frule aGroup.ag_pOp_closed[of "R" "1ax"ion

apply (induct_tac
 apply (simp add:ring_r_one ring_l_one)
 apply (simp del
        frule_tac n = "Suc n" in npClose[of "x"],
        subst ring_distrib1, assumption+)
 apply (rule aGroup.nsum_mem, assumptionle,e impI
        simp add:npClose(** Approximation lower bound **)
        simp del:npow_suc,
        thin_tac "(1r ± -a x) r Σ) app_"[vals_nonequiv K (Suc n) vv
 applysubst ring_distrib2assumption
        simp del:npow_suc add:ring_l_one,
        subst aGroup.pOp_assocTr43[of,assumption
        rule_tac x = "x^ (Suc n)>jh. h n)}. (x j) r (1 -r ±
        rule ring_tOp_closed, rule aGroup.ag_mOp_closed, assumption+)
 apply (subst aGroup.ag_l_inv1, assumption+, simp del:npow_suc
        add:aGroup.ag_r_zero,
        frule_tac x = "-a x" and y =apply (frule ApproximationTr3[ " vv"" j "]
        assumption+)
  (sim d:nsu add:app_l) apply ( allI)
        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 (in Corps) x_pow_fSum_in_Vr:"[valuation K v; x  carrier (Vr K v)] ==>
   (nsum K (npow K x) n)  carrier (Vr K v)"
apply (frule Vr_ring[of v])
apply (induct_tac n)
 apply 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 (rule aGroup.ag_pOp_closed[of "Vr K v"], assumption+)
 apply (subst Vr_exp_f_exp[THEN sym, of v], assumption+)
 apply (rule Ring.npClose[of "Vr K v"], assumption+)
done

lemma (in Corps) val_1mx_pos:"[valuation j (Σe K (λjh h<sub <> -<sub(1±
         0 < (v (1 >  v x = 0"
apply (cut_tac field_is_ring, frule Ring.ring_one[of "K"],
       frule Ring.ring_is_ag[of "K"])
 apply (frule aGroup.ag_mOp_closed[of "K" "x"], assumption+)
 apply (frule aGroup.ag_pOp_closed[of "K" "1r" "-a   (🚫{h.  <le}.  x jcdotr ± -\^1🚫 ±  
 apply (frule aGroup.ag_mOp_closed[of "K" java.lang.NullPointerException
 apply (cut_tac x = x and y = "1java.lang.NullPointerException
        eq_elems_eq_val
apply ( aGroupag_p_inv+,
       subst, assumption,
       ruleGroup_osed,assumption
       subst aGroup.ag_inv_inv, assumption+,
       subst aGroup.ag_r_inv1, assumption+,
       subst aGroup.ag_l_zero, assumption+,
       (paddupg_inv_inv
       frule  value_less_eq[of v  "1r" "-\<       y)"and   le_less_trans, 
        assumption+)
 apply (simp add:val_minus_eq value_of_one,
        simp add:value_of_one)
done 

lemma (in Corps) val_1mx_pow:"[j n).. (x ) \incarrie K]
        < (v (1> x))] ==> 0 < (v (1 ± -K (Suc n)

apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (sRing.one[THEN sym, of K x n], a+)
 apply (frule Ring.ring_one[of "K"],
        frule x_pow_fSum_in_Vr[of v x n],
        subst val_pos_mem_Vr[THEN sym], assumption+,
        frule val_1mx_pos[of "v" "x"], assumption+,
        simp)

 apply (subst val_t2p, assumption+,
        rule aGroup.ag_pOp_closed, assumption+,
        simp add:aGroup.ag_mOp_closed, simp add:Vr_mem_f_mem,
        frule val_pos_mem_Vr[THEN sym, of v "-<^>a (\><^bsub>K vv (Suc n)
) j)^ (Suc M))^ (Suc^>) (Suc n)±a (x j)))")
        simp add:Vr_mem_f_mem, simp)
 apply(frule aadd_le_mono[of "0" "v (nsum K (npow K x) n)" "v (1^> ± -java.lang.NullPointerException
       simp add:aadd_0_l, simpmmute
done

lemma (in Corps) ApproximationTr3:"[vals_nonequiv K (Suc n) vv;
      l (Suc n). x l carrier K; j (Suc n)] Goup.sum_mo K" "uc n"] assumption
     N. L < N an< (sub>e K (λk<> (Suc).java.lang.StringIndexOutOfBoundsException: Index 131 out of bounds for length 131
        ( ) <> (1 -r ± -\^bsub  (Suc n)<^sub> kk))^)) 
        (Suc n)) ± -a (x j))))"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
 apply (frule_tac vals_nonequiv_valuation[of "Suc n" "vv" j], assumption+)
apply (subgoal_tac "N. Σapply(rule ApplicationTr4 n vv]assumption
 -java.lang.NullPointerException
 Σjava.lang.NullPointerException
 ((Ωjava.lang.NullPointerException
        -a ((Ω :: "[_, nat, nat ==> ant) set] ==> bool"where
 apply (simp del"distinct_pds K j n. P j Pds<^bsub>K\^sub> <and>
apply (thin_tac "N. Σlm m  P  \noteq P m)"
 -a vv (Suc n)
prefer 2 apply (rule allI)
 apply (rule eSum_mi, assumption+)
 apply (rule allI, rule impI) apply (rule ApproximationTr0)
 apply (simp add:Ostrowski_base_mem) apply assumption
 apply (rule ballI, simp)
 apply simp
 apply (frule Ring.ring_one[of "K"])
 apply (cut_tac aa = " vv (Suc n) K nP==>
                                               Ring K {xcarrier K \forallj<le  ((ν<bsub ( j<^>)
 apply (simp add:Ostrowski_base_mem (simpstinct_pds_defpds_def
 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 (subst aGroup.ag_pOp_assoc[THEN sym], assumption+)
 apply (rule aGroup.ag_mOp_closed, assumption+)+
 apply (simp add:aGroup.ag_r_inv1)
 apply (subst aGroup.ag_l_zero, assumption+) apply (simp add:aGroup.ag_mOp_closed)
 apply simp (* subgoal 2 done **)

oal_tac<>L. <foral>N.L < N \longrightarrow>
  (ja

(*
 apply (subsubgoal_t "N. L < N an<le Amin (Suc n) (vv j inNset (Suc n). if lK +K -^sub>K (1 \^>K -<sub (Omega<^bsub>K vv (Suc n)
) l)^N)^ java.lang.NullPointerException
 else (x j) x = y aGroup.ag_mOp_closedofK", assum+)
+a y" in aGroup.ag_pOp_closed[of "K"], 
 apply (erule exE)
 apply (subgoal_tac "
  ((an m)
(1K +l_spec, assumpton
java.lang.NullPointerException
apply blast
*)

apply (erule exE)
apply (rename_tac M)
 apply (subgoal_tac "🚫
   (an m)  (vv j (Σfrule_tacx  = "\nu><^>K (P j)\^>) x"and ="\nuu) y" in amin_ge1[of ""])
   (x l) r  (1\<^bsub>K (P j)<^sub x) ((ν y)" and k = " (x ±a y)" in ale_trans[of "0"], assumption+)
   else (x j)
   ± -a 1Ile impI,
 apply
 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 "janCorpsvaluation<>j
 apply (rule Ring.ring_tOp_closed, assumption+, simp)
 apply (rule.ag_pOp_closed+)+
 apply (rule aGroup.ag_mOp_closed, assumption P  "j in r)
 apply (rule Ring.npClose,pds_def)
 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+)
  (rule ing.npCse, ssuumpon)
 apply (rule aGroup.ag_pOp_closed, assumption+)
 apply (rule aGroup.ag_mOp_closed, assumption)
 apply(inCorpdistsic_p_vauin:"<brakkj  n; distinct_pds K n P] ==> 
 apply (simp add:Ostrowski_base_mem) 

apply assumption

 apply (subgoal_tac "valuation \nu<^bsu>K Pj\^>"
 (applytac  0"
 apply (subgoal_tac "N. (1java.lang.NullPointerException
                         ±in {0::nat}",
 apply (simp add:val_t2p)
 apply (cut_tac multi_inequalityTr0[of "Suc""v <circ x" "m"])
 apply (subgoal_tac "ja  (Suc n). (vv j  x) jasimp
 apply (erule exE)
 apply (subgoal_tac "N. L < N (ja (Suc n). (ja j
java.lang.NullPointerException
 ('b, 'm Ring, nat ==>Rightar> ant) set,
java.lang.NullPointerException
 apply blast
 apply (rule allI, rule impI)+

apply (case_tac "ja = j"O= Sr K {x. x
 apply (thin_tac "^sub ± -a (<r ± -K vv (Suc n)
K N
K N
 -<sub 
        carrier K")
 apply (thin_tac "<><leSuc carrier K")
 apply (drule_tac x = N in spec)
 apply (drule_tac a = j in forall_spec, assumption,
        n_tac_tac a<>r ± -r ± -<>K vv (Suc n)j^N)^
         (simpd:ring_n_ddef mp add:ring_ndistictprimeiisors
apply (cut_tac N = N in ApproximationTr0 [of "
 apply (simp add:Ostrowski_base_mem)
 apply (frule Ring.ring_one[ K" frulearu._Op_leo "java.lang.NullPointerException
         assumption) apply (
        frule_tac x = "(1java.lang.NullPointerException
        aGroup.ag_mOp_closed[of "K"], assumption+)
 apply (simp only:aGroup.ag_pOp_assoc) 
 applyimp.ag_pOp_commute" _ "-<^suba 1"
 apply (simp only:aGroup.ag_pOp_assoc[THEN <> carrier (O]  ==> P n y = x ± y"
 apply (simp add:aGroup.ag_r_inv1)
 apply (simp add:aGroup.ag_l_zero) apply (simp only:val_minus_eq)
  apply (thin_tac "(1inct_pds; <>ier<^subK P n

        hin_taca (1 -\<^bsubc n)<esub) j^^ carrier K")
 apply (subst val_exp_ring[THEN sym, of "vv j"], assumption+)
  apply (rule aGroup.ag_pOp_closed[of "K"], assumption+)
  apply (rule aGroup.ag_mOp_closed[of "K"], assumption)
  apply (rule Ring.npClose, assumption+) apply (simp add:Ostrowski_base_mem)
 apply (rule Ostrowski_base_npow_not_one) apply simp apply assumption+
 apply (drule_tac a = N in forall_spec, assumption)
 apply (drule_tac a = j in forall_spec, assumption)
 1o n" ""] umption
 apply (Groupion
 apply (simp add:Ostrowski_base_mem) apply assumption
 apply (thin_tac "vv j (x j) j carrier (O] nsum (O f m nsm K f m"
 apply (thin_tac "0 < vv j (1r ±
 apply (cut_tac b = "vv j (1r ±distinct_pds K n P; ideal (O I; 
        asprod_geapply
 apply (cut_tac x = "an N" and y = java.lang.NullPointerException
 apply (simp add:aadd_commute)

apply simp
apply (frule_tac aa = "(Ωjava.lang.NullPointerException
       ApproximationTr2[of "vv j"])
   apply (simp add:Ostrowski_base_mem)
   apply (rule Ostrowski_base_nonzero, assumption+) 
trowski_baseTr0
       erule conjE) 
 apply (rotate_tac -1, frule_tac inforall_specplyssumptionption
 apply (frule_tac x = j in bspec, simp)
 apply (rule aless_imp_le) apply t
 apply (rotate_tac -5
        rule_tacll_specec
 apply (rotate_tac -2
        drule_tac a = ja in forall_spec, assumption
        drule_tac a = ja inmp_def
 apply (frule_tac l = ja in Ostrowski_baseTr0[of  "n" "vv"], assumption+)
 apply (erule inorpse_in_ring_n_pd_one_K
        frule_tac a = j in forall_spec, assumption+)
  apply (thin_tac "vv j (x ja)
 apply (cut_tac b = "vv j ((Ωjava.lang.NullPointerException
 applyplyp
 apply (frule_tac x = "an N" andN^> vv j ((Ω ja)" and
        z = "vv j (x ja)" in aadd_le_mono)
 apply (frule_tac x = "int N *a vv
     (1r ±distinct_pds K n P; x K P n

      in aadd_le_mono)
 apply (frule_tac i = "an N + vv j (x ja)" and 
       j = java.lang.NullPointerException
       k v <>r\>-r ±a ((ΩK vv (Suc n)
K N
) +
          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_trans[of "an m"],
                  mption
 apply (simp add:aadd_commute)
 apply (ruleapplyule_tacO"assumption+pto+
 apply (frule_tac a = ja in forall_spec, assumption)
 apply
 apply sm add:aug_)

apply (rule aa(sbt pimeiel_def)
  apply (rule aGroup.ag_pOp_closed, assumption+) apply blast
 ly uaru.pclsed,supinrl igrn_n,asmtin

apply ((rule allI)+, rule impI)
apply (rule_tac aa = "(Ω<^ ply)
K P n

       simp add:Ostrowski_base_mem
done
 
definitionringadd
  app_lb :: "[_ , nat, nat ==> 'b ==> ant, nat ==>ate_ofp_autin
            (nat ==> nat)"   (
 "Ψant_0)
 (an m) (vv j (Σ
 (1ime_n_pd_def ecconjE)
 (** Approximation lower bound **)


lemma (in Corps app_LBvals_nonequiv K (Suc n) vv;
      applypadd_ r_def
        N. (Ψ<^bsub>P jesub and x = a and y = "-a b" in 
  (apply_tactive_of_pd_valuation
  -java.lang.NullPointerException
apply (frule ApproximationTr3[of "n" "vv" "x" "j" "m"], 
                               assumption+)
apply (simp del:nsum_suc(e llI
applyamin_gt
apply (rule impI) apply blast
done

lemma (in ( plusminus -java.lang.NullPointerException
 j{h. h 
 l. N. l < N (tacrnd=xnRingO\^K P n

  (vv j (Σe K (λj
  -a ((\addt_pds_def
apply (oal_tac<> <Psi\K (Suc n) vv x m
  
  (f(enjE
  (vv j (Σe K (λjK (P j)) r)")
java.lang.NullPointerException
apply blast
 apply (rule allI, rule impI)+
apply (frule_tac j = j in app_LB[of "n" "vv" "x" _ "m"],
       simp, assumption,
       subgoal_tac " (Suc n) vv x m) j < N", blast)
apply (frule_tac l = j and n = "Suc n" and f = "Ψ (Suc n) vv x m" in m_max_gt,
       frule_tac x = " (Suc n) vv x m) j" and
       y = "m_max (Suc n) (Ψ (Suc n) vv x m)" and z = N in le_less_trans,
       assumption+)
done

theorem (in Corps) Approximation_thm:"[vals_nonequiv K (Suc n) vv; 
j (Suc n). (x j)  carrier K]  ==>
ycarrier K. j (Suc n). (an m)  (vv j (y ± -a (x j)))"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (subgoal_tac "l. (N. l < N  ( (Suc n). (an m)  ((vv j) ((nsum K (λj{h. h  (Suc n)}. (x j) r (1r ± -a (1r ± -a ((Ω vv (Suc n)) j)^ N)^ N)) (Suc n)) ± -a (x j)))))")
 apply (erule exE)
 apply (rename_tac M)
 apply (subgoal_tac "j (Suc n). (an m) 
 (vv j ( (Σe K (λj{h. h  (Suc n)}. (x j) r (1r ± -a (1r ± 
  -a ((Ω vv (Suc n)) j)^ (Suc M))^ (Suc M))) (Suc n)) ± -a (x j)))")
 apply (subgoal_tac "Σe K (λj{h. h  (Suc n)}. (x j) r (1r ± 
 -a (1r ± -a ((Ω vv (Suc n)) j)^ (Suc M))^ (Suc M))) (Suc n)  carrier K")
 apply blast
 apply (rule aGroup.nsum_mem[of "K" "Suc n"], assumption+)
 apply (rule allI, rule impI, simp del:nsum_suc npow_suc)
 apply (rule Ring.ring_tOp_closed, assumption+, simp,
        rule ApproximationTr1, simp add:Ostrowski_base_mem)

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

definition
  distinct_pds :: "[_, nat, nat ==> ('b ==> ant) set] ==> bool" where
  "distinct_pds K n P  (j n. P j  PdsK 
          (l n. m n. l  m  P l  P m)"

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

lemma (in Corps) ring_n_distinct_prime_divisors:"distinct_pds K n P ==>
       Ring (Sr K {x. xcarrier K  (j n. 0  ((νK (P j)) x))})"
apply (simp add:distinct_pds_def) 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,
        simp add:value_of_one)
apply (rule ballI)+
 apply simp
 apply (frule Ring.ring_is_ag[of "K"]) apply (erule conjE)+
 apply (frule_tac x = y in aGroup.ag_mOp_closed[of "K"], assumption+)
 apply (frule_tac x = x and y = "-a y" in aGroup.ag_pOp_closed[of "K"],
        assumption+)
 apply simp
 apply (rule conjI)
 apply (rule allI, rule impI)
 apply (rotate_tac -4, frule_tac a = j in forall_spec, assumption,
        rotate_tac -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 = "ν (P j)" and x = x and y = "-a y" in amin_le_plus,
        assumption+)
 apply (simp add:val_minus_eq)
 apply (frule_tac x = " (P j)) x" and y = " (P j)) y" in amin_ge1[of "0"])
        apply simp
 apply (rule_tac j = "amin ((ν (P j)) x) ((ν (P j)) y)" and k = " (P j)) (x ± -a y)" in ale_trans[of "0"], assumption+)
 apply (simp add:Ring.ring_tOp_closed)
 
apply (rule allI, rule impI,
       cut_tac P = "P j" in representative_of_pd_valuation, simp,
       subst val_t2p [where v="ν P j
       rule aadd_two_pos, simp+)
done

lemmainct_pds_valuationj 
       distinct_pds K (Suc n) P]
 apply (rule_tac P = "P j" in representative_of_pd_valuation) 
 apply (simp add:distinct_pds_def)
done

lemma (in Corps) distinct_pds_valuation1:"[0 < n; j n; distinct_pds K n P]
 ==> valuation K (ν (P j))"
apply (rule distinct_pds_valuation[of "j" "n - Suc 0" "P"]) 
apply simp+
done

lemma (in Corps) distinct_pds_valuation2:"[j n; distinct_pds K n P] ==>
          valuation K (ν (P j))"
apply (case_tac "n = 0",
       simp add:distinct_pds_def,
       subgoal_tac "0 {0::nat}",
       simp add:representative_of_pd_valuation[of "P 0"],
       simp)
 
 apply (simp add:distinct_pds_valuation1[of "n"])
done

definition
  ring_n_pd :: "[('b, 'm) Ring_scheme, nat ==> ('b ==> ant) set,
                             nat ] ==> ('b, 'm) Ring_scheme"
                 ((3O _ _) [98,98,99]98where
  "O P n = Sr K {x. x carrier K
           (j n. 0 ((ν (P j)) x))}" 
  (** ring defined by n prime divisors **)

lemma (in Corps) ring_n_pd:"distinct_pds K n P ==> Ring (O P n)"
by (simp add:ring_n_pd_def, simp add:ring_n_distinct_prime_divisors)

lemma (in Corps) ring_n_pd_Suc:"distinct_pds K (Suc n) P ==>
          carrier (OK P (Suc n)) carrier (O P n)"
apply (rule subsetI)
 apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) ring_n_pd_pOp_K_pOp:"[distinct_pds K n P; xcarrier (O P n);
 y carrier (O P n)] ==> x ±O P n) y = x ± y" 
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) ring_n_pd_tOp_K_tOp:"[distinct_pds K n P; x carrier (O P n);
      y carrier (O P n)] ==> x rO P n) y = x r y" 
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) ring_n_eSum_K_eSumTr:"distinct_pds K n P ==>
  (jm. f j carrier (O P n)) nsum (O P n) f m = nsum K f m"
apply (induct_tac m)
 apply (rule impI, simp)

 apply (rule impI, simp,
        subst ring_n_pd_pOp_K_pOp, assumption+,
        frule_tac n = n in ring_n_pd[of _ "P"],
        frule_tac Ring.ring_is_ag, drule sym, simp)
 apply (rule aGroup.nsum_mem, assumption+, simp+)
done

lemma (in Corps) ring_n_eSum_K_eSum:"[distinct_pds K n P;
      j m. f j carrier (O P n)] ==> nsum (O P n) f m = nsum K f m"
apply (simp add:ring_n_eSum_K_eSumTr)
done

lemma (in Corps) ideal_eSum_closed:"[distinct_pds K n P; ideal (O P n) I;
      j m. f j I] ==> nsum K f m I"
apply (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)" "I" _ "f"], assumption+)
 apply (subst ring_n_eSum_K_eSum [THEN sym, of n P m f], assumption+,
        rule allI, simp add:Ring.ideal_subset)
 apply assumption
done

definition
  prime_n_pd :: "[_, nat ==> ('b ==> ant) set,
                             nat, nat] ==> 'b set"
                 ((4P _ _ _) [98,98,98,99]98where
  "P P n j = {x. x (carrier (O P n)) 0 < ((ν (P j)) x)}"

lemma (in Corps) zero_in_ring_n_pd_zero_K:"distinct_pds K n P ==>
                               0O P n) = 0"
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) one_in_ring_n_pd_one_K:"distinct_pds K n P ==>
                                      1rO P n) = 1r"
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) mem_ring_n_pd_mem_K:"[distinct_pds K n P; x carrier (O P n)]
 ==> x carrier K" 
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) ring_n_tOp_K_tOp:"[distinct_pds K n P; x carrier (O P n);
      y carrier (O P n)] ==> x rO P n) y = x r y"
apply (simp add:ring_n_pd_def Sr_def)
done

lemma (in Corps) ring_n_exp_K_exp:"[distinct_pds K n P; x carrier (O P n)]
        ==> x^ m = x^O P n) m" 
apply (frule ring_n_pd[of "n" "P"])
apply (induct_tac m) apply simp
 apply (simp add:one_in_ring_n_pd_one_K)

apply simp
 apply (frule_tac n = na in Ring.npClose[of "O P n" "x"], assumption+)
 apply (simp add:ring_n_tOp_K_tOp)
done   

lemma (in Corps) prime_n_pd_prime:"[distinct_pds K n P; j n] ==>
              prime_ideal (O P n) (P P n j)"
apply (subst prime_ideal_def)
 apply (rule conjI)
 apply (simp add:ideal_def)
 apply (rule conjI)
 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 (subgoal_tac "0O P n) P P n j")
 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) 
 apply (cut_tac field_is_ring, simp add:Ring.ring_zero)
 apply (rule conjI) apply (rule allI, rule impI)
 apply (cut_tac P = "P ja" in representative_of_pd_valuation,
        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:ant_0[THEN sym]) 

 apply (rule ballI)+  
 apply (simp add:prime_n_pd_def) apply (erule conjE)+ 
 apply (frule ring_n_pd [of "n" "P"], frule Ring.ring_is_ag[of "O P n"])
 apply (frule_tac x = b in aGroup.ag_mOp_closed[of "O P n"], assumption+)
 apply (simp add:aGroup.ag_pOp_closed)
  apply (thin_tac "Ring (O P n)"apply (thin_tac "aGroup (O P n)")
 apply (simp add:ring_n_pd_def Sr_def)
 apply (erule conjE)+
 apply (cut_tac v =  (P j)" and x = a and y = "-a b" in 
        amin_le_plus) 
 apply (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)) a" and y = "(ν (P j)) (-a b)" in 
         amin_gt[of "0"])
 apply (simp add:val_minus_eq)

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

apply (rule ballI)+
 apply (frule ring_n_pd [of "n" "P"])
 apply (frule_tac x = r and y = x in Ring.ring_tOp_closed[of "O P n"], 
        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 n)"
 apply (simp add:prime_n_pd_def ring_n_pd_def Sr_def, (erule conjE)+,
        simp add:val_t2p)
 apply (subgoal_tac "0 ((ν (P j)) r)")
 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) 

apply ((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)
done 

lemma (in Corps) n_eq_val_eq_idealTr:
"[distinct_pds K n P; x carrier (O P n); y carrier (O P n);
\<forall>j n. ((ν (P j)) x) ((ν (P j)) y)] ==> Rxa (O P n) y Rxa (O P n) x"
apply (subgoal_tac "j n. valuation K (ν (P j))")
 apply (case_tac "x = 0O P n)",
        simp add:zero_in_ring_n_pd_zero_K)
 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)) y"],
        frule ale_antisym[of "(\<nu>\<^bsub>K (P n)\<^esub>) y" "\<infinity>"], assumption+)
 apply (rule value_inf_zero, assumption+)
 apply (simp add:mem_ring_n_pd_mem_K, assumption)
       
apply (frule ring_n_pd[of n P])
 apply (subgoal_tac "\<forall>j\<le>n. 0 \<le> ((\<nu>\<^bsub>K (P j)\<^esub>) (y \<cdot>\<^sub>r (x\<^bsup>\<hyphen>K\<^esup>)))")
 apply (subgoal_tac "(y \<cdot>\<^sub>r (x\<^bsup>\<hyphen>K\<^esup>)) \<in> carrier (O\<^bsub>K P n\<^esub>)")
 apply (cut_tac field_frac_mul[of "y" "x"],
        frule Ring.rxa_in_Rxa[of "O\<^bsub>K P n\<^esub>" "x" "y \<cdot>\<^sub>r (x\<^bsup>\<hyphen>K\<^esup>)"], assumption+, 
        simp add:ring_n_pd_tOp_K_tOp[THEN sym],
        frule Ring.principal_ideal[of "O\<^bsub>K P n\<^esub>" "x"], assumption+) 
 
 apply (cut_tac Ring.ideal_cont_Rxa[of "O\<^bsub>K P n\<^esub>" "(O\<^bsub>K P n\<^esub>) \<diamondsuit>\<^sub>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.rxa_in_Rxa[of "O\<^bsub>K P n\<^esub>" "x" "y \<cdot>\<^sub>r (x\<^bsup>\<hyphen>K\<^esup>)"], 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="\<nu>\<^bsub>K P j\<^esub>"], simp,
        rule mem_ring_n_pd_mem_K[of "n" "P" "y"], assumption+,
        frule_tac x = j in spec, simp,
        simp add:zero_in_ring_n_pd_zero_K)
 apply (subst value_of_inv [where v="\<nu>\<^bsub>K P j\<^esub>"], simp,
        simp add: applysimp
 apply (frule_tac x = "(\<nu>\<^bsub>K (P j)\<^esub>) x" and y = "(\<nu>\<^bsub>K (P j)\<^esub>) y" in ale_diff_pos,
        simp add:diff_ant_def,
        simp add:mem_ring_n_pd_mem_K[of "n" "P" "x"] zero_in_ring_n_pd_zero_K)

apply (rule allI, rule impI,
       simp add:distinct_pds_def, (erule conjE)+,
       rule_tac P = "P j" in representative_of_pd_valuation, simp)
done
 
lemma (in Corps) n_eq_val_eq_ideal:"\<lbrakk>distinct_pds K n P; x \<in> carrier (O\<^bsub>K P n\<^esub>);
      y \<in> carrier (O\<^bsub>K P n\<^esub>); \<forall>j \<le> n.((\<nu>\<^bsub>K (P j)\<^esub>) x) = ((java.lang.StringIndexOutOfBoundsException: Index 111 out of bounds for length 111
                 Rxa (O\<^bsub>K P n\<^esub>) x = Rxa (O\<^bsub>K P n\<^esub>) y"
apply (rule equalityI)
 apply (subgoal_tac "\<forall>j\<le> n. (\<nu>\<^bsub>K (P j)\<^esub>) y \<le> ((\<nu>\<^bsub>K (P
 apply (rule n_eq_val_eq_idealTr, assumption+)
 apply (rule allI, rule impI, simp)

 apply (subgoal_tac "\<forall>j\<le> n. (\<nu>\<^bsub>K (P j)\<^esub>) x \<le> ((\<nu>\<^bsub>K (P j)\<^esub>) y)")
 apply (rule n_eq_val_eq_idealTr, assumption+)
 apply  
 apply simp
done  
 
definition
  mI_gen :: "[_ , nat \<Rightarrow> ('r \<Rightarrow> ant) set, nat, 'r set] \<Rightarrow> 'r" where
  "mI_gen K P n I = (SOME x. x \<in> I \<and> 
                             (\<forall>j \<le> n. (\<nu>\<^bsub>K (P j)\<^esub>) x = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I))"

definition
  mL :: "[_, nat \<Rightarrow> ('r \<Rightarrow> ant) set, 'r set, nat] \<Rightarrow> int" where
  "mL K P I j = \               \<forallj<>( )   \<in carrier   \<ero})<>Longrightarrow 

lemma (in Corps) mI_vals_nonempty:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j\<le>n\<rbrakk>
    \<Longrightarrow> (\<nu>\<^bsub>K (P j)\<^esub>) ` I \<noteq> {}"
apply( ring_n_pdof"""")
apply (frule Ring.ideal_zero [of "O\<^bsub>K P n\<^esub>" "I"], assumption+)

apply (simp add:image_def)
apply blast
done

lemma (in Corps) mI_vals_LB:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j \<le> n\<rbrakk> \<Longrightarrow>
       ((\<nu>\<^bsub>K (P j)\<one
apply (rule subsetI)
apply (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 apply (frule ring_n_pd[of "n" "P"])
 apply (frule_tac h = xa 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, simp)
 
apply (simp add:LBset_def ant_0)
done

lemma (in Corps) mL_hom:"\<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>)\<rbrakk> \<Longrightarrow> 
      \<forall>j \<le> n. mL K P I j \<in> Zset
apply (rule allI, rule impI)
 apply (simp add:mL_def LI_def)
 apply (simp add:Zset_def)
done

lemma (in Corps) ex_Zleast_in_mI:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; j \<le> n\<rbrakk>
      \<Longrightarrow> \<exists>x\<in>I. (\<nu>\<^bsub>K       erule conjE  addmprod_Suc
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>\<^ apply rule Ringring_tOp_closed[of K] assumption+,
 apply (simp add:LI_def)
 apply (thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) ` I \<subseteq> LBset (ant 0)")
 apply (simp add:image_def, erule bexE)
 apply (drule sym)
 apply blast
done 

lemma (in Corps) val_LI_pos:"\<lbrakk>distinct_pds K n 
       I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; j \<le> n\<rbrakk> \<Longrightarrow> 0 \<le> LI K (\<nu>\<^bsub>K (P j)\<^esub>) 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+)
j\^>  "and z  inAMin_mem, +)
 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> {\<lemma (in Corps Kbase_Kroneckerdistinct_pdsK  P\<Longrightarrow 
apply j [ "n" "P" "I"], assumption+)
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
 apply (frule_tac A = "(\<nu>\<^bsub>K (P jjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 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\<^ apply subgoal_tac (<u><bsubK ( j<>)(Kb<bsub>K n P\<^esub>) j=<delta<bsubjj\^
 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) = (\ apply(imp :value_of_zero  onlyant_1THENsym,
        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+)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 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+)
 applysimp 
done 

lemma (in Corpslemma( Corps) :\lbrakkdistinct_pds KnP ideal(\^> P n\^> ;j \<>n<rbrakk>
 <>(Zl_mIK P I j \<in>)\and (<nu\^>K ( )<esub)( KP  j)=LIK (<><bsub>K Pj<esub>) I
apply (simp add:mL_def)
apply (apply( "<xists>.( <>I <and (<>^> P j<^> x=  K(nu><bsub> (P j)\<^sub) )"
       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)\<java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 36
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 (apply subgoal_tac"\^> P\^>=VrK(nu>^> P)^>)
done 

lemma (in Corps) Zleast_mL_I:" apply ( add:g_defZl_mI_def)
   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[ LIK(<>^> Pj)^>I]java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
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( Zleast_in_mI_posof "n P I "",+
 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  ( :em_ring_n_pd_mem_K)applyjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
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>) "  
applyfrulevalue_Zl_mI n""""l" +
 apply (rule conjI)
 apply (simp add:valuations_def)
allI  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
drule_taca=lin forall_specassumption, simp)
 apply (simp add:distinct_p_divisors)
done   mprod_expR_memTr"<orallj<len.  j \in>carrier )  <ongrightarrow>  

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  (cut_tac.npCloseof K f ""0

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 "pply (ubgoal_tac" <> j  <> n <> "simp)
         (\<nu>\<^bsub>K (P 0)\<^esub>) ((\<lambda>j\<in>{0::nat}. x) (0::nat)) = (\<delta>\<^bsub>0 0\<^esub>)") 
   java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  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 lemma(in Corps mprod_memTr:"
 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> 
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 java.lang.NullPointerException
apply (frule KbaseTr1[of n P])
apply simpadd:)
done   

lemma (in Corps) Kbase_nonzero:"distinct_pds K n P \<Longrightarrow> 
\forallj <>. Kb^> Pesub)j \>\zero>java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
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\<applyruleallI  impI  addnpowf_mem
ronecker_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 \pply (frule ring_n_pd[of nP])
                         \<Rightarrow> nat \<Rightarrow> 'b" where
  "Zl_mI K P I j = (SOME x. (x \<in> I \< apply( impI, eruleconjE),

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>  (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
apply (subgoal_tac "\<exists>x. (x \<in> I \<and> ((\<nu>\<^bsub>K (P j)\<^esub>) x = LI K (\<nu>\<^bsub         allI ruleimpI
apply (subst Zl_mI_def)+
apply (rule someI2_ex, assumption+) 
apply (frule ex_Zleast_in_mI[of "n" "P" "I" "j"], assumption+)
ulebexE blast 
done

lemma (in Corps) Zl_mI_nonzero:"\<lbrakk>distinct_pds K n P; ideal (O\<^bsub>K P n\<^esub>) I; 
      I \<noteq> {\apply substring_n_tOp_K_tOp,assumption,
apply (case_tac "n = 0")
apply (simp add:distinct_pds_def) 
 apply ruleRingmprod_expR_mem,simp:,
 apply (subgoal_tac         ,
 apply (subgoal_tac "Zl_mI K P I 0 = Ig K (\<nu>\<^bsub>K         simpjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
 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)
 ( value_Zl_mI[of n PIj] assumption)
 apply (erule conjE)
 apply (rule contrapos_pp\Longrightarrowmprod_expK  = O<bsub  n\^>)( oe f"
 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"], 
         sets_not_eqofI" "<>},,
        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 ( ruleallI rule,)
 apply (simp add:zero_in_ring_n_pd_zero_K) apply assumption
 apply simp
done
 
  simp :, :field_potent_nonzero1
       \<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"])
  frule.[ O<bsub> P<esub> I Zl_mI    l],+
applysimpadd:mem_ring_n_pd_mem_K n" PZl_mIKP ")
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>  
             K efn <>carrier K"
apply cut_tacfield_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 (substjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
 apply (simp)
 apply (simp)
 apply (rule Ring.ring_tOp_closed[of K], assumption+)
  ruleRing., assumption+)
 apply simp 
done

lemma( ) mprod_expR_mem"<> \le .f \in carrierK\Longrightarrow>java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
           mprod_expR K e f n \<in> carrier K"
apply (cut_tac field_is_ring) 
apply (cut_tac Ring applysimp
apply simp
apply (subgoal_tac "f \<in> {j. j \<le> n} \<rightarrow rotate_tac-,drulenot_sym) 
done 

lemma (in Corps) mprod_Suc:"\<lbrakk> \<forall>
                \<forall>j apply frule val_LI_noninfof" ""P "" "", +)
 mprod_exp K e f (Suc n) = (mprod_exp K e f n) \<cdot>\<^sub>r ((f (Suc n))\<^bsub>K\<^esub>\<^bsup>(e (Suc n))\<^esup>)"
apply (simp add:mprod_exp_def)
done

lemma(inCorps 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, ,
       erule conjE, simp add:mprod_Suc)
 apply (rule conjI)
 apply (rule Ring.ring_tOp_closed[of "K"], assumption+,
        simp add:npowf_mem)
 apply (rule Idomain.idom_tOp_nonzeros, assumption+,
        simp add:npowf_mem, assumption,
        simp add:field_potent_nonzero1) 
done

lemma (in Corps) mprod_mem:"\<lbrakk>\<forall>j \<le> n. e j         :delta_in_Zinf
apply (cut_tac mprod_memTr[ allIrule,
done

lemma (in Corps) mprod_mprodR:"\<lbrakk>\<forall>j \<le> n. e j \<in> Zset; \<forall>j \<le> n. 0 \<le> (e j); 
 \<forall>j \<le> n. f j \<in> ((carrier K) - {\<zero>}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              mprod_exp K e f n = mprod_expR K (nat o e) f n"
apply (cut_tac field_is_ring)
pplysimp :mprod_exp_defmprod_expR_def)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
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(add:)
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>")
apply (cut_tac eSum_single[of "Suc n" "\<lambda>ja. (mL K P I ja) *\<^sub>a (\<delta>\<^bsub>j ja\<^esub>)" "j"])
 apply simp
 apply (simp add:Kronecker_delta_def asprod_n_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 j)\<^esub>) I"])
apply (simp add:ant_tna) 
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 (simp add: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)
apply (rule allI, rule cut_tac[of"""",+
done

lemma (in Corps) mgenerator0_2:"\<lbrakk> 0 < n; 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))"
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))"
apply (case_tac "n = 0",
       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)\<^esub>) I"],
       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_tacKbase_Kronecker[of 0 P] simpadd:distinct_pds_defjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
 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 n P\<rbrakk> \<Longrightarrow>
      (\<nu>\<^bsub>K (P j)\<^esub>) (mprod_exp K (\<lambda>l. \<gamma>\<^bsub (\<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>\<^bsub>k ja\<^esub>) *\<^sub>a (\<nu>\<^bsub>K (P j)\<^esub>) ((Kb\<^bsub>K n P\<^esub>) ja)) n
       = 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)
  apply (simp add:K_gamma_def, rule impI, simp add:Kronecker_delta_def) 
  apply (rule allI, rule impI)
  apply (simp add:Kronecker_delta_def, simp add:K_gamma_def)
 apply (simp add:ant_0 Zero_in_aug_inf)
applycut_tacz_in_aug_infof1add:ant_1) 

 apply (rule ASum_eq)
apply( allI  impI)
  apply (simp add:K_gamma_def, simp add
  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+( = inRingideal_subsetof"\^> P n<esub I] +)
done

lemma (in Corps) mgenerator2Tr2:"\<lbrakk>0 < n; j \<le> n; k \<le> n; distinct_pds I<^esub>",assumption+)
     (\<nu>\<^bsub>K (P j)\<^esub>) ((mprod_exp K (\<lambda>l. \<gamma>\<^bsub>k l\<^esub> ) (Kb\<^bsub>K n Pjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4

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 applyfrule Kbase_Kronecker n P]
          (\<java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
apply (simp add:mgenerator2Tr2) apply (simp add:K_gamma_def)
done

lemma (in Corps) mgenerator2Tr3_2:"\<lbrakk>0 < n; j \<le> n; k \<le> n; j \<noteq> k; 
      distinct_pds K n P\<rbrakk> \<Longrightarrow>
      (\<nu>\<^bsub>K (P j)\<^esub>) ((mprod_exp K (\apply (simpaddKronecker_delta_def
apply (simp add:mgenerator2Tr2) apply (simp add:K_gamma_def)
done

 inCorpsmgeneratorTr4"<> < n;distinct_pds   ;ideal (\<^>K Pn<esub)I;
      I \<noteq> {\<zero>\<^bsub>O\<^bsub>K P n\<^esub>\<^esub>}; I \<noteq> carrier (O\<^bsub>K P n\<^esub>)\<rbrakk> \<Longrightarrow> 
       mprod_exp K (mL K P I) (Kb\<^bsub>K n   (rule_tac   xinRinga_in_principal[ "\^> Pn<^>")
apply (subst ring_n_pd_def)
apply (simp add:Sr_def)
 apply (frule mL_hom[of  "n" "P" "I"], assumption+)
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 apply (rule Kbase_hom1, assumption+)

 apply (simp add:mprod_mem)

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

definition
  m_zmax_pdsI_hom :: "[_, nat \<Rightarrow> ('b \<Rightarrow> ant) set, 'b set] \<Rightarrow> nat \<Rightarrow> int" where
  "m_zmax_pdsI_hom K P I = (\<lambda>j. tna (AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` I)))"

definition
  m_zmax_pdsI :: "[_, nat, nat \<Rightarrow> ('b \<Rightarrow> ant) set, 'b set] \<Rightarrow> int" where
  "m_zmax_pdsI K n P I = (m_zmax n (m_zmax_pdsI_hom K P I)) + 1"
 
lemma (in Corps) value_Zl_mI_pos:"\<lbrakk>0 < n; 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; l \<le> n\<rbrakk> \<Longrightarrow>
     0 \<le> ((\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I l))"
apply (frule         add:npowf_mem assumption,
apply (erule         add:field_potent_nonzero1
 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 (thin_tac "ideal (O\<^bsub>K P n\<^esub>) I")
 apply (thin_tac "I <noteq>{<><^>O<^>K  \^esub>\<^esub>}")
 apply (thin_tac "I \<noteq> carrier (O\<^bsub>K P n\<^esub>)")
 apply (thin_tac "Ring (O\<^bsub>K P n\<^esub>)")
 apply (simp add:ring_n_pd_def Sr_def) 
done

lemma (in Corps) value_mI_genTr1:"\<lbrakk>0 < n; 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>
 (mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup> \<in> carrier K"
apply (frule K_gamma_hom[of "j" "n"])
apply (frule mprod_mem[of n "K_gamma j" "Kb\<^bsub>K n P\<^esub>"])
 apply (rule Kbase_hom1, assumption+)
apply (rule npowf_mem)
 apply simp+
done

lemma (in Corps) value_mI_genTr1_0:"\<lbrakk>0 < n; distinct_pds K n P; 
 ideal (O\<^bsub>K P n\<^esub>) I; I \<noteq> {\<zero>\<^bsub>O\<^bsub>K P n\<^esub>pply(cut_tac field_is_ring
 \<Longrightarrow> (mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n) \<in> carrier K
apply (frule K_gamma_hom[of "j" "n"])
apply (frule mprod_mem[of n "K_gamma j" "Kb\<^bsub>K n P\<^esub>"])
 apply (rule Kbase_hom1, assumption+)
 apply simp
done


lemma (in Corps) value_mI_genTr2:"\<lbrakk>0 < n; 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>
 (mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup> \<noteq> \<zero>"
 apply (frule K_gamma_hom[of "j" "n"])
 apply (frule mprod_mem[of n "K_gamma j" "Kb\<^bsub>K n P\<^esub>"])
 apply (rule Kbase_hom1, assumption+) apply simp apply (erule conjE)
 apply (simp add: field_potent_nonzero1)
done

lemma (in Corps) value_mI_genTr3:"\<lbrakk>0 < n; 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>
 (Zl_mI K P I j) \<cdot>\<^sub>r ((mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup>)
  \<in> carrier K"
apply (cut_tac field_is_ring)
apply (rule Ring.ring_tOp_closed, assumption+)
apply (simp add:Zl_mI_mem_K)
apply (simp add:value_mI_genTr1)
done

lemma (in Corps) value_mI_gen:"\<lbrakk>0 < n; 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>) (nsum K (\<lambda>k. ((Zl_mI K P I k) \<cdot>\<^sub>r ((mprod_exp K (\<lambda>l. (\<gamma>\<^bsub>k l\<^esub>)) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup>))) n) = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I"
apply (cut_tac field_is_ring, frule Ring.ring_is_ag[of "K"])
apply (case_tac "j = n", simp) 
 apply (cut_tac nsum_suc[of K "\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r 
        mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>" "n - Suc 0"], 
        simp,
        thin_tac "\<Sigma>\<^sub>e K (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
               mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) n =
     \<Sigma>\<^sub>e K (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
               mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>)
                n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (n - Suc 0\<plusminus>
     Zl_mI K P I n \<cdot>\<^sub>r
     mprod_exp K (K_gamma n) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>")
 apply (cut_tac distinct_pds_valuation[of "n" "n - Suc 0" "P"])

prefer 2 apply simp 
 apply (subst value_less_eq1[THEN sym, of "\<nu>\<^bsub>K (P n)\<^esub>" 
 "(Zl_mI K P I n)\<cdot>\<^sub>r (mprod_exp K (K_gamma n) (Kb\<^bsub>K n P\<^esub>) n\<^bsubapply (simp addant_tna 
 "nsum K (\<lambda>k.(Zl_mI K P I k)\<cdot>\<^sub>r (mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>)) (n - Suc 0)"], assumption+) 

 apply (simp add:value_mI_genTr3)
 apply (frule Ring.ring_is_ag[of K])

 apply (  ( add
 apply (simp add:value_mI_genTr3) 

 apply (subst val_t2p[of "\<nu>\<^bsub>K (P n)\<^esub>"], 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) 
apply (frule value_Zl_mI[of "n" "P" "I" "n"], assumption+, simp)
 apply (erule conjE) 
 apply (frule_tac f =
       (mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>)" in 
       value_ge_add[of "\<nu>\<^bsub>K (P n)\<^esub>"        , impIapplysimp
      "ant (m_zmax_pdsI K n P I)"])
 apply (rule allI, rule impI) 
 apply (rule Ring.ring_tOp_closed, assumption+)
applysimp addZl_mI_mem_Kjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 apply (simp add:value_mI_genTr1Inoteq \>bsub(<bsubK n<^>\<esub;I <>carrier(O\^> Pn<esub>)  <e \rbrakk  \Longrightarrow

 apply (rule allI, rule impI) apply (simp add:cmp_def)
 \nu>(j<> mprod_exp mLKPI Kb<bsubKn\^> )   (nu\^> Pj)\<esub (l_mIKP I))
 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\<^bsub>K n P\<^esub>"])
 apply (simp add:Zset_def) apply (rule Kbase_hom1, assumption+)
 apply (subst val_exp[of "\<nu>\<^bsub>K (P 
 apply simp+ 

 apply (subst mgenerator2Tr1[of "n" "n" _ "P"], assumption+, simp, 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)
 apply (simp add:Nset_preTr1)
 apply (frule_tac y = "(\<nu>\<^bsub>K (P n)\<^esub>) (Zl_mI K P I ja)" in 
  aadd_le_mono[of "0" _ "ant (m_zmax_pdsI K n P I)"]) apply (simp add:aadd_0_l)
 apply (subgoal_tac "LI K (\<nu>\<^bsub>K (P n)\<^esub>) I < ant (m_zmax_pdsI K n P I)")
 apply simp
 apply (rule aless_le_trans[of "LI K (\<nu>\<^bsub>K (P n)\<^esub>) I" 
                           "ant (m_zmax_pdsI K n

 apply (simp add:m_zmax_pdsI_def)
 apply (cut_tac aless_zless[of "tna (LI K (\<nu>\<^bsub>K (P n)\<^esub>) I)" 
                   "m_zmax n (m_zmax_pdsI_hom K P I) + 1"])
(of"n """"""] + simp,simp 
apply (frule val_LI_pos[of "n" "P" "I" "n"], assumption+, simp,
       frule apos_neq_minf[of "LI K (\<nu>\<^bsub>K (P n)\<^esub>) I"], simp add:ant_tna)
 apply (subst m_zmax_pdsI_hom_def)
 apply (subst LI_def)
 apply (cut_tac m_zmax_gt_each[of n "\<lambda>u.(tna (AMin ((\<nu>\<^bsub>K (P u)\<^esub>) ` I)))"])
 apply simp

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

 apply (subst val_t2p[of "\<nu>\<^bsub>K (P n)\<^esub>"], assumption+)
 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 (frule aGroup.addition3[of "K" "n - Suc 0" "\<lambda>k. (Zl_mI K P I k) \<cdot>\<^sub>r
((mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup>)" "j"])
 
 apply simp
 apply (rule allI, rule impI) 
 apply (simp add:value_mI_genTr3) apply simp+

  thin_tac"\Sigma\^sub>e K  (\lambda>k. Zl_mI K P   <>\^>
     mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) n =
     \<Sigma>\<^sub>e K (cmp (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
            mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (\<tau>\<^bsub>j n\<^esub>)) n")
 apply (cut_tac nsum_suc[of K "cmp (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
     mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (\<tau>\<^bsub>j n\<^esub>)" "n - Suc 0"])
 apply (simp del:nsum_suc) apply (
        thin_tac "\<Sigma>\<^sub>e K (cmp (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
         mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (\<tau>\<^bsub>j n\<^esub>)) n =
     \<Sigma>\<^sub>e K (cmp (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
        mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (\<tau>\<^bsub>j n\<^esub>))
         (n - Suc 0\<plusminus>  (cmp (\<lambda>k. Zl_mI K P I k \<cdot>\<^sub>r
         mprod_exp K (K_gamma k) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>) (\<tau>\<^bsub>j n\<^esub>)) n")
 apply (cut_tac distinct_pds_valuation[of "j" "n - Suc 0" "P"])
 prefer 2 apply simp prefer 2 apply simp
 apply (simp add:cmp_def)

 apply (cut_tac n_in_Nsetn[of "n"])
 apply (simp add:transpos_ij_2)
 apply (subst value_less_eq1[THEN sym, of "\<nu>\<^bsub>K (P j)\<^esub>"
 "(Zl_mI K P I j) \<cdot>\<^sub>r (mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>)
  n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>)" "\<Sigma>\<^sub>e K (\<lambda>x.(Zl_mI K P I ((\<tau>\<^bsub>j n\<^esub>) x)) \<cdot>\<^sub>r
 (mprod_exp K (K_gamma ((\<tau>\<^bsub>j n\<^esub>) x)) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>)) (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 "\<nu>\<^bsub>K (P j)\<^esub>"], assumption+)
 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 = "\<lambda>x. (Zl_mI K P I ((\<tau>\<^bsub>j n\<^esub>) x)) \<cdot>\<^sub>r
       (mprod_exp K (K_gamma ((\<tau>\<^bsub>j n\<^esub>) x)) (Kb\<^bsub>K n P\<^esub>) n\<^bsub>K\<^esub>\<^bsup>m_zmax_pdsI K n P I\<^esup>)" in 
        value_ge_add[of "\<nu>\<^bsub>K (P j)\<^esub>"
        "n - Suc 0" _ "ant (m_zmax_pdsI K n P I)"], 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 (rule allI, rule impI) apply (simp add:cmp_def)

 apply (frule_tac l = ja in transpos_mem[of "j" "n" "n"], simp+)

 apply (subst val_t2p [where v="\<nu>\<^bsub>K P j\<^esub>"], assumption+) 
 apply (simp add:Zl_mI_mem_K)
 apply (simp add:value_mI_genTr1)
 apply (cut_tac k = ja in transpos_noteqTr[of "n" _ "j"], simp+) 
 apply (subst mgenerator2Tr3_2[of "n" "j" _ "P"], simp+)
 apply (cut_tac l = "(\<tau>\<^bsub>j n\<^esub>) ja" in value_Zl_mI_pos[of "n" "P" "I" "j"],
        simp+)
 apply (frule_tac y = "(\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I ((\<tau>\<^bsub>j n\<^esub>) ja))" in 
 aadd_le_mono[of "0"  _ "ant (m_zmax_pdsI K n P I)"])
 apply (simp add:aadd_0_l)
apply (subgoal_tac "LI K (\<nu>\<^bsub>K (P j)\<^esub>) I < ant (m_zmax_pdsI K n P I)")
 apply (rule aless_le_trans[of "LI K (\<nu>\<^bsub>K (P j)\<^esub>) I" 
                           "ant (m_zmax_pdsI K n P I)"], assumption+)

 apply (simp add:m_zmax_pdsI_def)
 apply (cut_tac aless_zless[of "tna (LI K (\<nu>\<^bsub>K (P j)\<^esub>) I)" 
                   "m_zmax n (m_zmax_pdsI_hom K P I) + 1"])
apply (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)\<^esub>) I"], simp add:ant_tna)
 apply (subst m_zmax_pdsI_hom_def)
 apply (subst LI_def)
 apply (subgoal_tac "\<forall>h \<le> n. (\<lambda>u. (tna (AMin ((\<nu>\<^bsub>K (P u)\<^esub>) ` I)))) h \<in> Zset")
 apply (frule m_zmax_gt_each[of n "\<lambda>u.(tna (AMin ((\<nu>\<^bsub>K (P u)\<^esub>) ` I)))"])
 apply simp
 apply (rule allI, rule impI)
 apply (simp add:Zset_def)
apply (subst val_t2p[of "\<nu>\<^bsub>K (P j)\<^esub>"], assumption+)
 apply (rule Zl_mI_mem_K, assumption+)
 apply (simp add:value_mI_genTr1)
  
 apply (simp add:mgenerator2Tr3_1[of  "n" "j" "j" "P" 
                                         "m_zmax_pdsI) 
 apply simpadd:aadd_0_r
 apply (simp add:value_Zl_mI[of "n" "P" "I" "j"])
done

 inCorps :\><;distinct_pdsK  ;ideal(<bsubKP \^> ;
  I \<noteq> {\<zero>\<^bsub>(O\<^bsub>K P n\<^esub>)\<^esub>}; I \<noteq> carrier (O\<^bsub>K P n\<^esub>)\<rbrakk> \<Longrightarrow>
  (nsum K (\<lambda>k. ((Zl_mI K P I k) \<cdot>\<^sub>r 
  ((mprod_exp K (\<lambda>l. (\<gamma>\<^bsub>k l\<^esub>)) (Kb\<^bsub   ruleallI,  impI
apply (cut_tac field_is_ring, frule ring_n_pd[of n P])
apply (rule ideal_eSum_closed[of n P I n], assumption+)
apply (rule allI, rule impI)
 apply (frule_tac j = j in value_Zl_mI[of  "n" "P" "I"], assumption+) 
 apply (erule conjE)
 apply (thin_tac "(\<nu>\<^bsub>K (P j)\<^esub>) (Zl_mI K P I j) = LI K (\<nu>\<^bsub>K (P j)\<^esub>) I")
 apply (subgoal_tac "(mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup>
 \<in> carrier (O\<^bsub>K P n\<^esub>)") 
 apply (frule_tac x = "Zl_mI K P I j" and 
   r = "(mprod_exp K (K_gamma j) (Kb\<^bsub>K n P\<^esub>) n)\<^bsub>K\<^esub>\<^bsup>(m_zmax_pdsI K n P I)\<^esup>"
   in Ring.ideal_ring_multiple1[of "(O\<^bsub>K P n\<^esub>)" "I"], assumption+) 
 apply (frule_tac h = "Zl_mI K P I j" in 
java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 79
 apply (simp add:ring_n_pd_tOp_K_tOp[of "n" "P"])
 
apply (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 (
 apply (subgoal_tac "\<forall>l \<le> n. (\<lambda>j. tna (AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` I))) l \<in> Zset")
 apply (frule m_zmax_gt_each[of n "\<lambda>j. tna (AMin ((\<nu>\<^bsub>K (P j)\<^esub>) ` 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 (\<nu>\<^bsub>K (P ja)\<^esub>) I)" in ale_zle[of "0"]) 
apply (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 (\<nu>\<^bsub>K (P ja)\<^esub>) I"(\<><bsub>K(P )<esub>) (mprod_exp K (lambda.(<><bsubkl<esub) Kb<bsub>K  \^> n)\^>\^><bsupm\^sup)= 0
       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)
done


textWe 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 :: "[_, nat, nat ==> ('b ==> ant) set,
 'b set] ==> 'b" ((4mIg_ _ _ _) [82,82,82,83]82) where
 "mIapply (simp adad:Nse_rT1
 ((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(P n)
 I {0O P n)}; I
  (simp add:mIg_def mI_gen_in_I)
 

  (in Corps) mI_principalTr:"[0 < n; distinct_pds K n P; ideal (O P apply (simp add:m_zmxpdsdef
 I {0O P n)}; I carrier (O^bsub> (P n)) I)"
 j n. ((ν (P j)) (mIg n P I))
  (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 {0\<^apply(
 I = Rxa (O P n) (mIg n P I)"
  (frule ring_n_pd[of "n" "P"])
  (rule equalityI)
 apply (rule subsetI)
 apply (sbst Idef)
 assumption+)
 apply (frule_tac y = x in n_eq_val_eq_idealTr[of "n" "P" "mIg(P u)
 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
 apply (frule_tac h = x in Ring.ideal_subset[of "O P n" "I"], assumption+)
java.lang.NullPointerException
 apply (simp add:subsetD)
 apply (rule Ring.ideal_cont_Rxa[of "O P n" "I" "mIg], assumption+)
 apply (rule mI_gen_in_I1[of "n" "P" "I"], assumption+)
 

 

  (in Corps) prime_n_pd_principal:"[distinct_pds K n P; j n] ==>
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
  (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 "nn" P],
 assumption+)
 apply (case_tac "x = 0 K (cmp (λ K P I k r
 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+)
 def, erule con)
 apply (thin_tac "ideal (O P n) {x. x carrier (O(bn P) n K n P I) (τ n)" "n - Suc 0"])
 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 x" and B = "(O K n P
 in subsetD, assumption+)
  (simp add:Rin.a_in_principal)
 apply (rule Ring.ideal_cont_Rxa[of "O P n" "P P n j" "(Kb(K nK n P I n))
 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 distinct_pds_valuation[of "j" "n - Suc 0" ""P"])
 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=89 H=67 G=78

¤ 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.0.425Bemerkung:  ¤

*Bot Zugriff






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.