Skip to content

Commit 7fff1e5

Browse files
committed
Merge branch 'angle_incenter_unoriented' into imo2024q4
2 parents 20ce09a + be79eb3 commit 7fff1e5

File tree

233 files changed

+1291
-1091
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+1291
-1091
lines changed

Mathlib.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,7 @@ public import Mathlib.Analysis.Calculus.TangentCone.Pi
16701670
public import Mathlib.Analysis.Calculus.TangentCone.Prod
16711671
public import Mathlib.Analysis.Calculus.TangentCone.ProperSpace
16721672
public import Mathlib.Analysis.Calculus.TangentCone.Real
1673+
public import Mathlib.Analysis.Calculus.TangentCone.Seq
16731674
public import Mathlib.Analysis.Calculus.Taylor
16741675
public import Mathlib.Analysis.Calculus.UniformLimitsDeriv
16751676
public import Mathlib.Analysis.Calculus.VectorField
@@ -5612,6 +5613,7 @@ public import Mathlib.Order.Interval.Set.IsoIoo
56125613
public import Mathlib.Order.Interval.Set.Limit
56135614
public import Mathlib.Order.Interval.Set.LinearOrder
56145615
public import Mathlib.Order.Interval.Set.Monotone
5616+
public import Mathlib.Order.Interval.Set.Nat
56155617
public import Mathlib.Order.Interval.Set.OrdConnected
56165618
public import Mathlib.Order.Interval.Set.OrdConnectedComponent
56175619
public import Mathlib.Order.Interval.Set.OrdConnectedLinear

Mathlib/Algebra/Algebra/Basic.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,9 @@ variable (R S A M : Type*) [CommSemiring R] [Semiring A] [Algebra R A] [Faithful
446446
lemma NoZeroDivisors.of_faithfulSMul [NoZeroDivisors A] : NoZeroDivisors R :=
447447
(FaithfulSMul.algebraMap_injective R A).noZeroDivisors _ (by simp) (by simp)
448448

449+
lemma IsCancelMulZero.of_faithfulSMul [IsCancelMulZero A] : IsCancelMulZero R :=
450+
(FaithfulSMul.algebraMap_injective R A).isCancelMulZero _ (by simp) (by simp)
451+
449452
lemma IsDomain.of_faithfulSMul [IsDomain A] : IsDomain R :=
450453
(FaithfulSMul.algebraMap_injective R A).isDomain
451454

Mathlib/Algebra/Algebra/Subalgebra/Directed.lean

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -40,55 +40,70 @@ theorem coe_iSup_of_directed (dir : Directed (· ≤ ·) K) : ↑(iSup K) = ⋃
4040

4141
variable (K)
4242

43-
-- TODO: turn `hT` into an assumption `T ≤ iSup K`. That's what `Set.iUnionLift` needs
4443
/-- Define an algebra homomorphism on a directed supremum of subalgebras by defining
4544
it on each subalgebra, and proving that it agrees on the intersection of subalgebras. -/
4645
noncomputable def iSupLift (dir : Directed (· ≤ ·) K) (f : ∀ i, K i →ₐ[R] B)
4746
(hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h))
48-
(T : Subalgebra R A) (hT : T = iSup K) : ↥T →ₐ[R] B :=
49-
{ toFun := Set.iUnionLift (fun i => ↑(K i)) (fun i x => f i x)
50-
(fun i j x hxi hxj => by
51-
let ⟨k, hik, hjk⟩ := dir i j
52-
dsimp
53-
rw [hf i k hik, hf j k hjk]
54-
rfl)
55-
(T : Set A) (by rw [hT, coe_iSup_of_directed dir])
56-
map_one' := by apply Set.iUnionLift_const _ (fun _ => 1) <;> simp
57-
map_zero' := by apply Set.iUnionLift_const _ (fun _ => 0) <;> simp
58-
map_mul' := by
59-
subst hT;
60-
apply Set.iUnionLift_binary (coe_iSup_of_directed dir) dir _ (fun _ => (· * ·)) <;> simp
61-
map_add' := by
62-
subst hT;
63-
apply Set.iUnionLift_binary (coe_iSup_of_directed dir) dir _ (fun _ => (· + ·)) <;> simp
64-
commutes' := fun r => by apply Set.iUnionLift_const _ (fun _ => algebraMap R _ r) <;> simp }
47+
(T : Subalgebra R A) (hT : T ≤ iSup K) : ↥T →ₐ[R] B :=
48+
by
49+
let compat :
50+
∀ (i j) (x : A) (hxi : x ∈ (K i : Set A)) (hxj : x ∈ (K j : Set A)),
51+
f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩ := by
52+
intro i j x hxi hxj
53+
rcases dir i j with ⟨k, hik, hjk⟩
54+
simp [hf i k hik, hf j k hjk]
55+
let liftSup : ((iSup K : Subalgebra R A)) →ₐ[R] B :=
56+
{ toFun :=
57+
Set.iUnionLift (fun i => ↑(K i)) (fun i x => f i x) compat
58+
((iSup K : Subalgebra R A) : Set A)
59+
(le_of_eq <| coe_iSup_of_directed (K := K) dir)
60+
map_one' := by
61+
dsimp
62+
exact Set.iUnionLift_const _ (fun i : ι => (1 : K i)) (fun _ => rfl) _ (by simp)
63+
map_zero' := by
64+
dsimp
65+
exact Set.iUnionLift_const _ (fun i : ι => (0 : K i)) (fun _ => rfl) _ (by simp)
66+
map_mul' := by
67+
dsimp
68+
apply Set.iUnionLift_binary (coe_iSup_of_directed (K := K) dir) dir _ (fun _ => (· * ·))
69+
all_goals simp
70+
map_add' := by
71+
dsimp
72+
apply Set.iUnionLift_binary (coe_iSup_of_directed (K := K) dir) dir _ (fun _ => (· + ·))
73+
all_goals simp
74+
commutes' := fun r => by
75+
dsimp
76+
exact
77+
Set.iUnionLift_const _ (fun i : ι => algebraMap R (K i) r) (fun _ => rfl) _ (by simp) }
78+
exact liftSup.comp (inclusion hT)
6579

6680

6781
@[simp]
6882
theorem iSupLift_inclusion {dir : Directed (· ≤ ·) K} {f : ∀ i, K i →ₐ[R] B}
6983
{hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)}
70-
{T : Subalgebra R A} {hT : T = iSup K} {i : ι} (x : K i) (h : K i ≤ T) :
84+
{T : Subalgebra R A} {hT : T iSup K} {i : ι} (x : K i) (h : K i ≤ T) :
7185
iSupLift K dir f hf T hT (inclusion h x) = f i x := by
7286
dsimp [iSupLift, inclusion]
7387
rw [Set.iUnionLift_inclusion]
88+
exact SetLike.coe_subset_coe.mpr fun ⦃x⦄ a ↦ hT (h a)
7489

7590
@[simp]
7691
theorem iSupLift_comp_inclusion {dir : Directed (· ≤ ·) K} {f : ∀ i, K i →ₐ[R] B}
7792
{hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)}
78-
{T : Subalgebra R A} {hT : T = iSup K} {i : ι} (h : K i ≤ T) :
93+
{T : Subalgebra R A} {hT : T iSup K} {i : ι} (h : K i ≤ T) :
7994
(iSupLift K dir f hf T hT).comp (inclusion h) = f i := by ext; simp
8095

8196
@[simp]
8297
theorem iSupLift_mk {dir : Directed (· ≤ ·) K} {f : ∀ i, K i →ₐ[R] B}
8398
{hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)}
84-
{T : Subalgebra R A} {hT : T = iSup K} {i : ι} (x : K i) (hx : (x : A) ∈ T) :
99+
{T : Subalgebra R A} {hT : T iSup K} {i : ι} (x : K i) (hx : (x : A) ∈ T) :
85100
iSupLift K dir f hf T hT ⟨x, hx⟩ = f i x := by
86101
dsimp [iSupLift, inclusion]
87102
rw [Set.iUnionLift_mk]
88103

89104
theorem iSupLift_of_mem {dir : Directed (· ≤ ·) K} {f : ∀ i, K i →ₐ[R] B}
90105
{hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)}
91-
{T : Subalgebra R A} {hT : T = iSup K} {i : ι} (x : T) (hx : (x : A) ∈ K i) :
106+
{T : Subalgebra R A} {hT : T iSup K} {i : ι} (x : T) (hx : (x : A) ∈ K i) :
92107
iSupLift K dir f hf T hT x = f i ⟨x, hx⟩ := by
93108
dsimp [iSupLift, inclusion]
94109
rw [Set.iUnionLift_of_mem]

Mathlib/Algebra/Algebra/Tower.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ module
88
public import Mathlib.Algebra.Algebra.Equiv
99
public import Mathlib.LinearAlgebra.Span.Basic
1010

11-
import Mathlib.Algebra.NoZeroSMulDivisors.Basic
1211

1312
/-!
1413
# Towers of algebras

Mathlib/Algebra/BigOperators/Finprod.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public import Mathlib.Algebra.Order.Ring.Defs
1515
public import Mathlib.Data.Set.Finite.Lattice
1616

1717
import Mathlib.Algebra.Module.End
18-
import Mathlib.Algebra.NoZeroSMulDivisors.Basic
1918

2019
/-!
2120
# Finite products and sums over types and sets

Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public import Mathlib.CategoryTheory.Monoidal.Braided.Opposite
1111
public import Mathlib.CategoryTheory.Monoidal.Comon_
1212
public import Mathlib.LinearAlgebra.TensorProduct.Tower
1313
public import Mathlib.RingTheory.Coalgebra.TensorProduct
14+
public import Mathlib.Tactic.SuppressCompilation
1415

1516
/-!
1617
# The category equivalence between `R`-coalgebras and comonoid objects in `R-Mod`

Mathlib/Algebra/Category/Ring/Constructions.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ module
88
public import Mathlib.Algebra.Category.Ring.Colimits
99
public import Mathlib.Algebra.Category.Ring.Instances
1010
public import Mathlib.Algebra.Category.Ring.Limits
11-
public import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.BicartesianSq
1211
public import Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
1312
public import Mathlib.RingTheory.Localization.BaseChange
13+
public import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
1414

1515
/-!
1616
# Constructions of (co)limits in `CommRingCat`

Mathlib/Algebra/Category/Ring/LinearAlgebra.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Authors: Christian Merten
66
module
77

88
public import Mathlib.Algebra.Category.Ring.Constructions
9-
public import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.BicartesianSq
109
public import Mathlib.LinearAlgebra.Basis.VectorSpace
1110
public import Mathlib.RingTheory.Flat.FaithfullyFlat.Basic
1211

Mathlib/Algebra/Category/Ring/Topology.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public import Mathlib.Algebra.Category.Ring.Colimits
99
public import Mathlib.Algebra.Category.Ring.Constructions
1010
public import Mathlib.Algebra.MvPolynomial.CommRing
1111
public import Mathlib.Topology.Algebra.Ring.Basic
12+
public import Mathlib.CategoryTheory.Limits.Shapes.FiniteProducts
1213

1314
/-!
1415
# Topology on `Hom(R, S)`

Mathlib/Algebra/Central/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Authors: Kevin Buzzard, Jujian Zhang, Yunzhou Xie
66
module
77

88
public import Mathlib.Algebra.Central.Defs
9-
public import Mathlib.Algebra.Module.Torsion.Field
109

1110
import Mathlib.Algebra.Module.Torsion.Field
1211

0 commit comments

Comments
 (0)