fix error with numerals in integers
This commit is contained in:
parent
138fef02fa
commit
c19192fbe5
5 changed files with 43 additions and 18 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
-- Author: Floris van Doorn
|
-- Author: Floris van Doorn
|
||||||
|
|
||||||
import .graded ..spectrum.basic .product_group
|
import .graded ..spectrum.basic .product_group .ring
|
||||||
|
|
||||||
open algebra is_trunc left_module is_equiv equiv eq function nat sigma set_quotient group
|
open algebra is_trunc left_module is_equiv equiv eq function nat sigma set_quotient group
|
||||||
left_module
|
left_module
|
||||||
|
@ -535,7 +535,8 @@ namespace exact_couple
|
||||||
|
|
||||||
open int group prod convergence_theorem prod.ops
|
open int group prod convergence_theorem prod.ops
|
||||||
|
|
||||||
definition Z2 [constructor] : AddAbGroup := agℤ ×aa agℤ
|
local attribute [coercion] AddAbGroup_of_Ring
|
||||||
|
definition Z2 [constructor] : AddAbGroup := rℤ ×aa rℤ
|
||||||
|
|
||||||
structure convergent_exact_couple.{u v w} {R : Ring} (E' : agℤ → agℤ → LeftModule.{u v} R)
|
structure convergent_exact_couple.{u v w} {R : Ring} (E' : agℤ → agℤ → LeftModule.{u v} R)
|
||||||
(Dinf : agℤ → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} :=
|
(Dinf : agℤ → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} :=
|
||||||
|
@ -722,7 +723,7 @@ namespace spectrum
|
||||||
|
|
||||||
definition i_sequence : D_sequence →gm D_sequence :=
|
definition i_sequence : D_sequence →gm D_sequence :=
|
||||||
begin
|
begin
|
||||||
fapply graded_hom.mk, exact (prod_equiv_prod erfl (add_right_action (- (1 : ℤ)))),
|
fapply graded_hom.mk, exact (prod_equiv_prod erfl (add_right_action (- 1))),
|
||||||
{ intro i, exact pair_eq !add_zero⁻¹ idp },
|
{ intro i, exact pair_eq !add_zero⁻¹ idp },
|
||||||
intro v,
|
intro v,
|
||||||
apply lm_hom_int.mk, esimp,
|
apply lm_hom_int.mk, esimp,
|
||||||
|
@ -730,7 +731,7 @@ namespace spectrum
|
||||||
end
|
end
|
||||||
|
|
||||||
definition deg_j_seq_inv [constructor] : I ≃ I :=
|
definition deg_j_seq_inv [constructor] : I ≃ I :=
|
||||||
prod_equiv_prod (add_right_action (1 : ℤ)) (add_right_action (- (1 : ℤ)))
|
prod_equiv_prod (add_right_action 1) (add_right_action (- 1))
|
||||||
|
|
||||||
definition fn_j_sequence [unfold 3] (x : I) :
|
definition fn_j_sequence [unfold 3] (x : I) :
|
||||||
D_sequence (deg_j_seq_inv x) →lm E_sequence x :=
|
D_sequence (deg_j_seq_inv x) →lm E_sequence x :=
|
||||||
|
@ -759,7 +760,7 @@ namespace spectrum
|
||||||
intro y, induction x with n s, induction y with m t,
|
intro y, induction x with n s, induction y with m t,
|
||||||
refine equiv_rect !pair_eq_pair_equiv⁻¹ᵉ _ _,
|
refine equiv_rect !pair_eq_pair_equiv⁻¹ᵉ _ _,
|
||||||
intro pq, esimp at pq, induction pq with p q,
|
intro pq, esimp at pq, induction pq with p q,
|
||||||
revert t q, refine eq.rec_equiv (add_right_action (-(1 : ℤ))) _,
|
revert t q, refine eq.rec_equiv (add_right_action (- 1)) _,
|
||||||
induction p using eq.rec_symm,
|
induction p using eq.rec_symm,
|
||||||
apply is_exact_homotopy homotopy.rfl,
|
apply is_exact_homotopy homotopy.rfl,
|
||||||
{ symmetry, exact graded_hom_mk_out_destruct deg_j_seq_inv⁻¹ᵉ (λi, idp) fn_j_sequence },
|
{ symmetry, exact graded_hom_mk_out_destruct deg_j_seq_inv⁻¹ᵉ (λi, idp) fn_j_sequence },
|
||||||
|
@ -789,7 +790,7 @@ namespace spectrum
|
||||||
|
|
||||||
open int
|
open int
|
||||||
parameters (ub : ℤ → ℤ) (lb : ℤ → ℤ)
|
parameters (ub : ℤ → ℤ) (lb : ℤ → ℤ)
|
||||||
(Aub : Π(s n : ℤ), s ≥ ub n + (1 : ℤ) → is_equiv (πₛ→[n] (f s)))
|
(Aub : Π(s n : ℤ), s ≥ ub n + 1 → is_equiv (πₛ→[n] (f s)))
|
||||||
(Alb : Π(s n : ℤ), s ≤ lb n → is_contr (πₛ[n] (A s)))
|
(Alb : Π(s n : ℤ), s ≤ lb n → is_contr (πₛ[n] (A s)))
|
||||||
|
|
||||||
definition B : I → ℕ
|
definition B : I → ℕ
|
||||||
|
@ -799,7 +800,7 @@ namespace spectrum
|
||||||
| (n, s) := max0 (ub n - s)
|
| (n, s) := max0 (ub n - s)
|
||||||
|
|
||||||
definition B'' : I → ℕ
|
definition B'' : I → ℕ
|
||||||
| (n, s) := max0 (max (ub n + (1 : ℤ) - s) (ub (n+(1 : ℤ)) + (1 : ℤ) - s))
|
| (n, s) := max0 (max (ub n + 1 - s) (ub (n+1) + 1 - s))
|
||||||
|
|
||||||
lemma iterate_deg_i (n s : ℤ) (m : ℕ) : (deg i_sequence)^[m] (n, s) = (n, s - m) :=
|
lemma iterate_deg_i (n s : ℤ) (m : ℕ) : (deg i_sequence)^[m] (n, s) = (n, s - m) :=
|
||||||
begin
|
begin
|
||||||
|
@ -862,7 +863,7 @@ namespace spectrum
|
||||||
{ intro n, change max0 (ub n - ub n) = 0, exact ap max0 (sub_self (ub n)) },
|
{ intro n, change max0 (ub n - ub n) = 0, exact ap max0 (sub_self (ub n)) },
|
||||||
{ intro ns, reflexivity },
|
{ intro ns, reflexivity },
|
||||||
{ intro n, reflexivity },
|
{ intro n, reflexivity },
|
||||||
{ intro r, exact (-(1 : ℤ), r + (1 : ℤ)) },
|
{ intro r, exact (- 1, r + 1) },
|
||||||
{ intro r, refine !convergence_theorem.deg_dr ⬝ _,
|
{ intro r, refine !convergence_theorem.deg_dr ⬝ _,
|
||||||
refine ap (deg j_sequence) !iterate_deg_i_inv ⬝ _,
|
refine ap (deg j_sequence) !iterate_deg_i_inv ⬝ _,
|
||||||
exact prod_eq idp !zero_add }
|
exact prod_eq idp !zero_add }
|
||||||
|
|
|
@ -5,14 +5,22 @@ import algebra.ring .direct_sum ..heq ..move_to_lib
|
||||||
open algebra group eq is_trunc sigma
|
open algebra group eq is_trunc sigma
|
||||||
|
|
||||||
namespace algebra
|
namespace algebra
|
||||||
definition AbGroup_of_Ring [constructor] (R : Ring) : AbGroup :=
|
definition AddAbGroup_of_Ring [constructor] (R : Ring) : AddAbGroup :=
|
||||||
AbGroup.mk R (add_ab_group_of_ring R)
|
AddAbGroup.mk R (add_ab_group_of_ring R)
|
||||||
|
|
||||||
definition ring_AbGroup_of_Ring [instance] (R : Ring) : ring (AbGroup_of_Ring R) :=
|
definition AddGroup_of_Ring [constructor] (R : Ring) : AddGroup :=
|
||||||
|
AddGroup.mk R (add_group_of_add_ab_group R)
|
||||||
|
|
||||||
|
definition ring_AddAbGroup_of_Ring [instance] (R : Ring) : ring (AddAbGroup_of_Ring R) :=
|
||||||
Ring.struct R
|
Ring.struct R
|
||||||
|
|
||||||
|
/- we give the following instance very high priority, otherwise type class inference would sometimes find the additive structure of R as the group structure. -/
|
||||||
|
definition monoid_AddAbGroup_of_Ring [instance] [priority 3000] [constructor] (R : Ring) :
|
||||||
|
monoid (Group_of_AbGroup (AddAbGroup_of_Ring R)) :=
|
||||||
|
@monoid_of_ring _ (Ring.struct R)
|
||||||
|
|
||||||
definition ring_right_action [constructor] {R : Ring} (r : R) :
|
definition ring_right_action [constructor] {R : Ring} (r : R) :
|
||||||
AbGroup_of_Ring R →g AbGroup_of_Ring R :=
|
AddAbGroup_of_Ring R →a AddAbGroup_of_Ring R :=
|
||||||
homomorphism.mk (λs, s * r) (λs s', !right_distrib)
|
homomorphism.mk (λs, s * r) (λs s', !right_distrib)
|
||||||
|
|
||||||
definition ring_of_ab_group [constructor] (G : Type) [ab_group G] (m : G → G → G) (o : G)
|
definition ring_of_ab_group [constructor] (G : Type) [ab_group G] (m : G → G → G) (o : G)
|
||||||
|
|
|
@ -36,7 +36,7 @@ convergent_spectral_sequence (λn s, LeftModule_int_of_AbGroup (E' n s))
|
||||||
|
|
||||||
definition convergent_spectral_sequence_of_exact_couple {R : Ring} {E' : agℤ → agℤ → LeftModule R}
|
definition convergent_spectral_sequence_of_exact_couple {R : Ring} {E' : agℤ → agℤ → LeftModule R}
|
||||||
{Dinf : agℤ → LeftModule R} (c : convergent_exact_couple E' Dinf)
|
{Dinf : agℤ → LeftModule R} (c : convergent_exact_couple E' Dinf)
|
||||||
(st_eq : Πn, (st c n).1 + (st c n).2 = n) (deg_i_eq : deg (i (X c)) 0 = (-(1 : ℤ), (1 : ℤ))) :
|
(st_eq : Πn, (st c n).1 + (st c n).2 = n) (deg_i_eq : deg (i (X c)) 0 = (- 1, 1)) :
|
||||||
convergent_spectral_sequence E' Dinf :=
|
convergent_spectral_sequence E' Dinf :=
|
||||||
convergent_spectral_sequence.mk (λr, E (page (X c) r)) (λr, d (page (X c) r))
|
convergent_spectral_sequence.mk (λr, E (page (X c) r)) (λr, d (page (X c) r))
|
||||||
(deg_d c) (deg_d_eq0 c)
|
(deg_d c) (deg_d_eq0 c)
|
||||||
|
@ -49,8 +49,8 @@ convergent_spectral_sequence (λn s, LeftModule_int_of_AbGroup (E' n s))
|
||||||
induction p with p IH,
|
induction p with p IH,
|
||||||
{ exact !prod.eta⁻¹ ⬝ prod_eq (eq_sub_of_add_eq (ap (add _) !zero_add ⬝ st_eq n))
|
{ exact !prod.eta⁻¹ ⬝ prod_eq (eq_sub_of_add_eq (ap (add _) !zero_add ⬝ st_eq n))
|
||||||
(zero_add (st c n).2)⁻¹ },
|
(zero_add (st c n).2)⁻¹ },
|
||||||
{ assert H1 : Π(a : ℤ), n - (p + a) - (1 : ℤ) = n - (succ p + a),
|
{ assert H1 : Π(a : ℤ), n - (p + a) - 1 = n - (succ p + a),
|
||||||
exact λa, !sub_add_eq_sub_sub⁻¹ ⬝ ap (sub n) (add_comm_middle p a (1 : ℤ) ⬝ proof idp qed),
|
exact λa, !sub_add_eq_sub_sub⁻¹ ⬝ ap (sub n) (add_comm_middle p a 1 ⬝ proof idp qed),
|
||||||
assert H2 : Π(a : ℤ), p + a + 1 = succ p + a,
|
assert H2 : Π(a : ℤ), p + a + 1 = succ p + a,
|
||||||
exact λa, add_comm_middle p a 1,
|
exact λa, add_comm_middle p a 1,
|
||||||
refine ap (deg (i (X c))) IH ⬝ !deg_eq ⬝ ap (add _) deg_i_eq ⬝ prod_eq !H1 !H2 }
|
refine ap (deg (i (X c))) IH ⬝ !deg_eq ⬝ ap (add _) deg_i_eq ⬝ prod_eq !H1 !H2 }
|
||||||
|
|
|
@ -232,6 +232,22 @@ section atiyah_hirzebruch
|
||||||
{ reflexivity }
|
{ reflexivity }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
/-
|
||||||
|
to unfold a field of atiyah_hirzebruch_spectral_sequence:
|
||||||
|
esimp [atiyah_hirzebruch_spectral_sequence, convergent_spectral_sequence_of_exact_couple,
|
||||||
|
atiyah_hirzebruch_convergence, convergent_exact_couple_g_isomorphism,
|
||||||
|
convergent_exact_couple_isomorphism, convergent_exact_couple_reindex,
|
||||||
|
atiyah_hirzebruch_convergence2, convergent_exact_couple_negate_abutment,
|
||||||
|
atiyah_hirzebruch_convergence1, convergent_exact_couple_sequence],
|
||||||
|
|
||||||
|
-/
|
||||||
|
definition AHSS_deg_d (r : ℕ) :
|
||||||
|
convergent_spectral_sequence.deg_d atiyah_hirzebruch_spectral_sequence r =
|
||||||
|
(r + 2, -(r + 1)) :=
|
||||||
|
begin
|
||||||
|
reflexivity
|
||||||
|
end
|
||||||
|
|
||||||
end atiyah_hirzebruch
|
end atiyah_hirzebruch
|
||||||
|
|
||||||
section unreduced_atiyah_hirzebruch
|
section unreduced_atiyah_hirzebruch
|
||||||
|
|
|
@ -8,10 +8,10 @@ namespace EM
|
||||||
|
|
||||||
|
|
||||||
definition EM1product_adj {R : Ring} :
|
definition EM1product_adj {R : Ring} :
|
||||||
EM1 (AbGroup_of_Ring R) →* ppmap (EM1 (AbGroup_of_Ring R)) (EMadd1 (AbGroup_of_Ring R) 1) :=
|
EM1 (AddGroup_of_Ring R) →* ppmap (EM1 (AddGroup_of_Ring R)) (EMadd1 (AddAbGroup_of_Ring R) 1) :=
|
||||||
begin
|
begin
|
||||||
have is_trunc 1 (ppmap (EM1 (AbGroup_of_Ring R)) (EMadd1 (AbGroup_of_Ring R) 1)),
|
have is_trunc 1 (ppmap (EM1 (AddGroup_of_Ring R)) (EMadd1 (AddAbGroup_of_Ring R) 1)),
|
||||||
from is_trunc_pmap_of_is_conn _ _ _ _ _ _ (le.refl 2) !is_trunc_EMadd1,
|
from is_trunc_pmap_of_is_conn _ _ !is_conn_EM1 _ _ _ (le.refl 2) !is_trunc_EMadd1,
|
||||||
apply EM1_pmap, fapply inf_homomorphism.mk,
|
apply EM1_pmap, fapply inf_homomorphism.mk,
|
||||||
{ intro r, refine pfunext _ _, exact !loop_EM2⁻¹ᵉ* ∘* EM1_functor (ring_right_action r), },
|
{ intro r, refine pfunext _ _, exact !loop_EM2⁻¹ᵉ* ∘* EM1_functor (ring_right_action r), },
|
||||||
{ intro r r', exact sorry }
|
{ intro r r', exact sorry }
|
||||||
|
|
Loading…
Reference in a new issue