Library ult_impl
Require
Export
impl_large.
Lemma
Red3_nuevo_Red1_bis_full: (F:(list pol))(g,h:pol)
(Red3 F g h)->(~(equpol g h))->
(Ex [f:pol_full](Red1 F g (inc f))/\(Red3 F (inc f) h)).
Induction 1; Intros.
Elim H4; Auto.
Elim (can_fun h0); Intros; Trivial.
Elim p; Intros.
Clear p.
Split with (exist pol [p:pol](full_pol p) x H5).
Simpl.
Split; Auto.
Apply Red1_ext1 with h0; Auto.
Elim (equpol_dec_full_term f g0); Auto; Intros.
Cut ~(equpol h0 f); Intros.
Elim H7; Auto; Intros.
Elim H10; Intros.
Split with x.
Split; Auto.
Apply Red1_ext2 with f; Auto.
Red; Intros.
Cut (equpol g0 h0); Intros; Auto.
Apply equpol_tran with f; Auto.
Elim H5; Auto; Intros.
Elim H9; Intros.
Clear H9.
Split with x.
Split; Auto.
Apply Red3_tran with f; Auto.
Save
.
Definition
local_confluente_full :=
[F:(list pol_full)][f:pol_full](g:pol_full)(h:pol_full)
(Red1 (inc_list F) (inc f) (inc g))->
(Red1 (inc_list F) (inc f) (inc h))->
(common_succ_full F g h).
Definition
noether_Red1_full :=
[F:(list pol_full)](x:pol_full)(P:pol_full->Prop)
((y:pol_full)((z:pol_full)(Red1 (inc_list F) (inc y) (inc z))->(P z))->(P y))->
(P x).
Lemma
noeth_noether2: (F:(list pol_full))(noetheriano ? (inc_Red1 F))->
(noether_Red1_full F).
Unfold noetheriano.
Unfold well_founded.
Unfold noether_Red1_full; Intros.
Elim H with x; Intros.
Apply H0; Intros.
Apply H2.
Unfold simetrico.
Unfold inc_Red1; Trivial.
Save
.
Lemma
noeth_noether2_inv: (F:(list pol_full))(noether_Red1_full F)->
(noetheriano ? (inc_Red1 F)).
Unfold noether_Red1_full.
Unfold noetheriano.
Unfold well_founded; Intros.
Apply H; Intros.
Apply Acc_intro; Intros.
Apply H0; Intros.
Unfold simetrico in H1.
Unfold inc_Red1 in H1; Trivial.
Save
.
Section
Newman_pol.
Variable
F:(list pol_full).
Hypothesis
Hyp1:(noether_Red1_full F).
Hypothesis
Hyp2:(x:pol_full)(local_confluente_full F x).
Section
Induccion.
Variable
x:pol_full.
Hypothesis
hyp_ind:((u:pol_full)(Red1 (inc_list F) (inc x) (inc u))->(confluente_full F u)).
Variables
y,z:pol_full.
Hypothesis
h1:(Red3 (inc_list F) (inc x) (inc y)).
Hypothesis
h2:(Red3 (inc_list F) (inc x) (inc z)).
Section
Newman_f.
Variable
u:pol_full.
Hypothesis
t1:(Red1 (inc_list F) (inc x) (inc u)).
Hypothesis
t2:(Red3 (inc_list F) (inc u) (inc y)).
Theorem
Diagrama: (v:pol_full)(u1:(Red1 (inc_list F) (inc x) (inc v)))
(u2:(Red3 (inc_list F) (inc v) (inc z)))
(common_succ_full F y z).
Intros.
Red in Hyp2.
Cut (common_succ_full F u v); Intros.
Elim H; Intros.
Clear H.
Cut (common_succ_full F y p); Intros.
Elim H; Intros.
Clear H.
Cut (common_succ_full F p0 z); Intros.
Elim H; Intros.
Clear H.
Split with p1; Auto.
Apply Red3_trans with (inc p0); Auto.
Inversion H1; Auto.
Red in hyp_ind.
Apply hyp_ind with v; Auto.
Apply Red3_trans with (inc p); Auto.
Inversion h1; Auto.
Apply hyp_ind with u; Auto.
Apply Hyp2 with x; Auto.
Save
.
Theorem
caseRed1xy: (common_succ_full F y z).
Elim (equpol_dec_full_term (inc x) (inc z)); Intros.
Split with y.
Apply Red3_eq; Auto.
Inversion h1; Auto.
Apply Red3_ext2 with (inc x); Auto.
Elim Red3_nuevo_Red1_bis_full with (inc_list F) (inc x) (inc z); Intros; Trivial.
Elim H; Intros.
Clear H.
Apply Diagrama with x0; Auto.
Inversion h1; Auto.
Inversion h2; Auto.
Save
.
End
Newman_f.
Theorem
Ind_prueba: (common_succ_full F y z).
Elim (equpol_dec_full_term (inc x) (inc y)); Intros; Auto.
Split with z.
Apply Red3_ext2 with (inc x); Auto.
Apply Red3_eq; Auto.
Inversion h1; Auto.
Elim (Red3_nuevo_Red1_bis_full (inc_list F) (inc x) (inc y)); Intros; Trivial.
Elim H; Intros.
Clear H.
Apply caseRed1xy with x0; Auto.
Save
.
End
Induccion.
Theorem
Newmansi: (x:pol_full)(confluente_full F x).
Intros.
Apply Hyp1; Intros.
Red.
Apply Ind_prueba; Intros.
Apply H; Auto.
Save
.
End
Newman_pol.
Lemma
G3CR_L_impl_G3CR_full: (F:(list pol_full))(full_fam (inc_list F))->
((f,g,h:pol_full)(Red1 (inc_list F) (inc f) (inc g))->
(Red1 (inc_list F) (inc f) (inc h))->
(common_succ_full F g h))->(Groebner3_CR_full F).
Intros.
Red; Split.
Assumption.
Apply Newmansi; Auto.
Apply noeth_noether2; Auto.
Apply buen_ord_red1; Auto.
Save
.
Lemma
G2_impl_G1_full: (G:(list pol_full))(Groebner2_full G)->
(Groebner1_full G).
Intros.
Cut (f,g,h:pol_full)
(Red1 (inc_list G) (inc f) (inc g))
->(Red1 (inc_list G) (inc f) (inc h))
->(common_succ_full G g h); Intros.
Cut (Groebner3_CR_full G); Intros.
Apply G3_CR_impl_G1_full; Trivial.
Apply G3CR_L_impl_G3CR_full; Trivial.
Red in H.
Elim H; Trivial.
Elim G2_impl_G3_LCR_full with G f g h; Auto; Intros.
Split with p; Trivial.
Save
.
Index
This page has been generated by coqdoc