Skip to content

Commit

Permalink
Merge branch 'master' into FR_mulmono_alias
Browse files Browse the repository at this point in the history
  • Loading branch information
FR-vdash-bot committed Oct 9, 2024
2 parents fda2074 + 7817d20 commit 6c642a0
Show file tree
Hide file tree
Showing 701 changed files with 7,443 additions and 3,885 deletions.
4 changes: 2 additions & 2 deletions .github/build.in.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ jobs:
run: |
rm -rf .lake/build/lib/Mathlib/
# Fail quickly if the cache is completely cold, by checking for Mathlib.Init
lake exe cache get Mathlib.Init
lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
lake exe cache get #Mathlib.Init
#lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
- name: update {Mathlib, Tactic, Counterexamples, Archive}.lean
id: mk_all
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/bors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ jobs:
run: |
rm -rf .lake/build/lib/Mathlib/
# Fail quickly if the cache is completely cold, by checking for Mathlib.Init
lake exe cache get Mathlib.Init
lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
lake exe cache get #Mathlib.Init
#lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
- name: update {Mathlib, Tactic, Counterexamples, Archive}.lean
id: mk_all
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,8 @@ jobs:
run: |
rm -rf .lake/build/lib/Mathlib/
# Fail quickly if the cache is completely cold, by checking for Mathlib.Init
lake exe cache get Mathlib.Init
lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
lake exe cache get #Mathlib.Init
#lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
- name: update {Mathlib, Tactic, Counterexamples, Archive}.lean
id: mk_all
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build_fork.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,8 @@ jobs:
run: |
rm -rf .lake/build/lib/Mathlib/
# Fail quickly if the cache is completely cold, by checking for Mathlib.Init
lake exe cache get Mathlib.Init
lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
lake exe cache get #Mathlib.Init
#lake build --no-build Mathlib.Init && lake exe cache get || echo "No cache for 'Mathlib.Init' available"
- name: update {Mathlib, Tactic, Counterexamples, Archive}.lean
id: mk_all
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lean4checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
run: |
git clone https://github.com/leanprover/lean4checker
cd lean4checker
git checkout v4.12.0-rc1
git checkout v4.13.0-rc3
# Now that the git hash is embedded in each olean,
# we need to compile lean4checker on the same toolchain
cp ../lean-toolchain .
Expand Down
2 changes: 1 addition & 1 deletion Archive/Imo/Imo1962Q1.lean
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ lemma case_more_digits {c n : ℕ} (hc : (digits 10 c).length ≥ 6) (hpp : Prob
calc
n ≥ 10 * c := le.intro hpp.left.symm
_ ≥ 10 ^ (digits 10 c).length := base_pow_length_digits_le 10 c (by decide) hnz
_ ≥ 10 ^ 6 := pow_le_pow_right (by decide) hc
_ ≥ 10 ^ 6 := pow_right_mono₀ (by decide) hc
_ ≥ 153846 := by norm_num

/-!
Expand Down
4 changes: 2 additions & 2 deletions Archive/Imo/Imo2024Q1.lean
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ lemma mem_Ico_one_of_mem_Ioo (h : α ∈ Set.Ioo 0 2) : α ∈ Set.Ico 1 2 := by
by_contra! hn
have hr : 1 < ⌈α⁻¹⌉₊ := by
rw [Nat.lt_ceil]
exact_mod_cast one_lt_inv h0 hn
exact_mod_cast (one_lt_inv h0).2 hn
apply hr.ne'
suffices ⌈α⁻¹⌉₊ = (1 : ℤ) from mod_cast this
apply Int.eq_one_of_dvd_one (Int.zero_le_ofNat _)
Expand Down Expand Up @@ -153,7 +153,7 @@ lemma not_condition_of_mem_Ioo {α : ℝ} (h : α ∈ Set.Ioo 0 2) : ¬Condition
convert hna using 1
field_simp
rw [sub_eq_add_neg, ← le_sub_iff_add_le', neg_le, neg_sub] at hna'
rw [le_inv (by linarith) (mod_cast hn), ← not_lt] at hna'
rw [le_inv_comm₀ (by linarith) (mod_cast hn), ← not_lt] at hna'
apply hna'
exact_mod_cast Nat.lt_floor_add_one (_ : ℝ)

Expand Down
4 changes: 2 additions & 2 deletions Archive/Wiedijk100Theorems/AbelRuffini.lean
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ theorem real_roots_Phi_ge_aux (hab : b < a) :
· have hf1 : f 1 < 0 := by simp [hf, hb]
have hfa : 0 ≤ f a := by
simp_rw [hf, ← sq]
refine add_nonneg (sub_nonneg.mpr (pow_le_pow_right ha ?_)) ?_ <;> norm_num
refine add_nonneg (sub_nonneg.mpr (pow_right_mono₀ ha ?_)) ?_ <;> norm_num
obtain ⟨x, ⟨-, hx1⟩, hx2⟩ := intermediate_value_Ico' hle (hc _) (Set.mem_Ioc.mpr ⟨hf1, hf0⟩)
obtain ⟨y, ⟨hy1, -⟩, hy2⟩ := intermediate_value_Ioc ha (hc _) (Set.mem_Ioc.mpr ⟨hf1, hfa⟩)
exact ⟨x, y, (hx1.trans hy1).ne, hx2, hy2⟩
Expand All @@ -126,7 +126,7 @@ theorem real_roots_Phi_ge_aux (hab : b < a) :
f (-a) = (a : ℝ) ^ 2 - (a : ℝ) ^ 5 + b := by
norm_num [hf, ← sq, sub_eq_add_neg, add_comm, Odd.neg_pow (by decide : Odd 5)]
_ ≤ (a : ℝ) ^ 2 - (a : ℝ) ^ 3 + (a - 1) := by
refine add_le_add (sub_le_sub_left (pow_le_pow_right ha ?_) _) ?_ <;> linarith
refine add_le_add (sub_le_sub_left (pow_right_mono₀ ha ?_) _) ?_ <;> linarith
_ = -((a : ℝ) - 1) ^ 2 * (a + 1) := by ring
_ ≤ 0 := by nlinarith
have ha' := neg_nonpos.mpr (hle.trans ha)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ theorem card_le_two_pow {x k : ℕ} :
card M₁ ≤ card (image f K) := card_le_card h
_ ≤ card K := card_image_le
_ ≤ 2 ^ card (image Nat.succ (range k)) := by simp only [K, card_powerset]; rfl
_ ≤ 2 ^ card (range k) := pow_le_pow_right one_le_two card_image_le
_ ≤ 2 ^ card (range k) := pow_right_mono₀ one_le_two card_image_le
_ = 2 ^ k := by rw [card_range k]

/--
Expand Down
4 changes: 2 additions & 2 deletions Counterexamples/SorgenfreyLine.lean
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ theorem nhds_countable_basis_Ico_inv_pnat (a : ℝₗ) :
theorem nhds_antitone_basis_Ico_inv_pnat (a : ℝₗ) :
(𝓝 a).HasAntitoneBasis fun n : ℕ+ => Ico a (a + (n : ℝₗ)⁻¹) :=
⟨nhds_basis_Ico_inv_pnat a, monotone_const.Ico <| Antitone.const_add
(fun k _l hkl => inv_le_inv_of_le (Nat.cast_pos.2 k.2)
(fun k _l hkl => inv_anti₀ (Nat.cast_pos.2 k.2)
(Nat.mono_cast <| Subtype.coe_le_coe.2 hkl)) _⟩

theorem isOpen_iff {s : Set ℝₗ} : IsOpen s ↔ ∀ x ∈ s, ∃ y > x, Ico x y ⊆ s :=
Expand Down Expand Up @@ -141,7 +141,7 @@ theorem continuous_toReal : Continuous toReal :=
exact inf_le_left

instance : OrderClosedTopology ℝₗ :=
⟨isClosed_le_prod.preimage (continuous_toReal.prod_map continuous_toReal)⟩
⟨isClosed_le_prod.preimage (continuous_toReal.prodMap continuous_toReal)⟩

instance : ContinuousAdd ℝₗ := by
refine ⟨continuous_iff_continuousAt.2 ?_⟩
Expand Down
14 changes: 12 additions & 2 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -1023,6 +1023,7 @@ import Mathlib.Analysis.Calculus.FDeriv.Extend
import Mathlib.Analysis.Calculus.FDeriv.Linear
import Mathlib.Analysis.Calculus.FDeriv.Measurable
import Mathlib.Analysis.Calculus.FDeriv.Mul
import Mathlib.Analysis.Calculus.FDeriv.Norm
import Mathlib.Analysis.Calculus.FDeriv.Pi
import Mathlib.Analysis.Calculus.FDeriv.Prod
import Mathlib.Analysis.Calculus.FDeriv.RestrictScalars
Expand Down Expand Up @@ -1096,6 +1097,7 @@ import Mathlib.Analysis.ConstantSpeed
import Mathlib.Analysis.Convex.AmpleSet
import Mathlib.Analysis.Convex.Basic
import Mathlib.Analysis.Convex.Between
import Mathlib.Analysis.Convex.Birkhoff
import Mathlib.Analysis.Convex.Body
import Mathlib.Analysis.Convex.Caratheodory
import Mathlib.Analysis.Convex.Combination
Expand Down Expand Up @@ -2354,6 +2356,7 @@ import Mathlib.Data.Matrix.CharP
import Mathlib.Data.Matrix.ColumnRowPartitioned
import Mathlib.Data.Matrix.Composition
import Mathlib.Data.Matrix.DMatrix
import Mathlib.Data.Matrix.DoublyStochastic
import Mathlib.Data.Matrix.DualNumber
import Mathlib.Data.Matrix.Hadamard
import Mathlib.Data.Matrix.Invertible
Expand Down Expand Up @@ -3613,6 +3616,7 @@ import Mathlib.Order.Filter.AtTopBot
import Mathlib.Order.Filter.AtTopBot.Archimedean
import Mathlib.Order.Filter.AtTopBot.BigOperators
import Mathlib.Order.Filter.AtTopBot.Field
import Mathlib.Order.Filter.AtTopBot.Floor
import Mathlib.Order.Filter.AtTopBot.Group
import Mathlib.Order.Filter.AtTopBot.ModEq
import Mathlib.Order.Filter.AtTopBot.Monoid
Expand All @@ -3625,6 +3629,7 @@ import Mathlib.Order.Filter.Cofinite
import Mathlib.Order.Filter.CountableInter
import Mathlib.Order.Filter.CountableSeparatingOn
import Mathlib.Order.Filter.Curry
import Mathlib.Order.Filter.Defs
import Mathlib.Order.Filter.ENNReal
import Mathlib.Order.Filter.EventuallyConst
import Mathlib.Order.Filter.Extr
Expand Down Expand Up @@ -3880,11 +3885,13 @@ import Mathlib.RingTheory.Derivation.ToSquareZero
import Mathlib.RingTheory.DiscreteValuationRing.Basic
import Mathlib.RingTheory.DiscreteValuationRing.TFAE
import Mathlib.RingTheory.Discriminant
import Mathlib.RingTheory.DualNumber
import Mathlib.RingTheory.EisensteinCriterion
import Mathlib.RingTheory.EssentialFiniteness
import Mathlib.RingTheory.Etale.Basic
import Mathlib.RingTheory.EuclideanDomain
import Mathlib.RingTheory.Filtration
import Mathlib.RingTheory.FiniteLength
import Mathlib.RingTheory.FinitePresentation
import Mathlib.RingTheory.FiniteStability
import Mathlib.RingTheory.FiniteType
Expand Down Expand Up @@ -3965,7 +3972,6 @@ import Mathlib.RingTheory.LocalRing.Module
import Mathlib.RingTheory.LocalRing.ResidueField.Basic
import Mathlib.RingTheory.LocalRing.ResidueField.Defs
import Mathlib.RingTheory.LocalRing.RingHom.Basic
import Mathlib.RingTheory.LocalRing.RingHom.Defs
import Mathlib.RingTheory.Localization.Algebra
import Mathlib.RingTheory.Localization.AsSubring
import Mathlib.RingTheory.Localization.AtPrime
Expand Down Expand Up @@ -4160,6 +4166,7 @@ import Mathlib.SetTheory.Lists
import Mathlib.SetTheory.Ordinal.Arithmetic
import Mathlib.SetTheory.Ordinal.Basic
import Mathlib.SetTheory.Ordinal.CantorNormalForm
import Mathlib.SetTheory.Ordinal.Enum
import Mathlib.SetTheory.Ordinal.Exponential
import Mathlib.SetTheory.Ordinal.FixedPoint
import Mathlib.SetTheory.Ordinal.FixedPointApproximants
Expand Down Expand Up @@ -4321,6 +4328,7 @@ import Mathlib.Tactic.Linter.HaveLetLinter
import Mathlib.Tactic.Linter.Lint
import Mathlib.Tactic.Linter.MinImports
import Mathlib.Tactic.Linter.OldObtain
import Mathlib.Tactic.Linter.PPRoundtrip
import Mathlib.Tactic.Linter.RefineLinter
import Mathlib.Tactic.Linter.Style
import Mathlib.Tactic.Linter.TextBased
Expand Down Expand Up @@ -4386,6 +4394,7 @@ import Mathlib.Tactic.RewriteSearch
import Mathlib.Tactic.Rify
import Mathlib.Tactic.Ring
import Mathlib.Tactic.Ring.Basic
import Mathlib.Tactic.Ring.Compare
import Mathlib.Tactic.Ring.PNat
import Mathlib.Tactic.Ring.RingNF
import Mathlib.Tactic.Sat.FromLRAT
Expand Down Expand Up @@ -4612,6 +4621,7 @@ import Mathlib.Topology.ContinuousMap.CocompactMap
import Mathlib.Topology.ContinuousMap.Compact
import Mathlib.Topology.ContinuousMap.CompactlySupported
import Mathlib.Topology.ContinuousMap.ContinuousMapZero
import Mathlib.Topology.ContinuousMap.Defs
import Mathlib.Topology.ContinuousMap.Ideals
import Mathlib.Topology.ContinuousMap.LocallyConstant
import Mathlib.Topology.ContinuousMap.Ordered
Expand Down Expand Up @@ -4741,7 +4751,7 @@ import Mathlib.Topology.MetricSpace.ThickenedIndicator
import Mathlib.Topology.MetricSpace.Thickening
import Mathlib.Topology.MetricSpace.Ultra.Basic
import Mathlib.Topology.MetricSpace.Ultra.ContinuousMaps
import Mathlib.Topology.MetricSpace.Ultra.TotallyDisconnected
import Mathlib.Topology.MetricSpace.Ultra.TotallySeparated
import Mathlib.Topology.Metrizable.Basic
import Mathlib.Topology.Metrizable.ContinuousMap
import Mathlib.Topology.Metrizable.Uniformity
Expand Down
7 changes: 3 additions & 4 deletions Mathlib/Algebra/Algebra/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ universe u v w u₁ v₁

namespace Algebra

variable {R : Type u} {S : Type v} {A : Type w} {B : Type*}
variable {R : Type u} {A : Type w}

section Semiring

variable [CommSemiring R] [CommSemiring S]
variable [Semiring A] [Algebra R A] [Semiring B] [Algebra R B]
variable [CommSemiring R]
variable [Semiring A] [Algebra R A]

section PUnit

Expand Down Expand Up @@ -319,7 +319,6 @@ section IsScalarTower
variable {R : Type*} [CommSemiring R]
variable (A : Type*) [Semiring A] [Algebra R A]
variable {M : Type*} [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M]
variable {N : Type*} [AddCommMonoid N] [Module A N] [Module R N] [IsScalarTower R A N]

theorem algebra_compatible_smul (r : R) (m : M) : r • m = (algebraMap R A) r • m := by
rw [← one_smul A m, ← smul_assoc, Algebra.smul_def, mul_one, one_smul]
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Algebra/Spectrum.lean
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ end CommSemiring

section CommRing

variable {F R A B : Type*} [CommRing R] [Ring A] [Algebra R A] [Ring B] [Algebra R B]
variable {F R A : Type*} [CommRing R] [Ring A] [Algebra R A]
variable [FunLike F A R] [AlgHomClass F R A R]

local notation "σ" => spectrum R
Expand Down
6 changes: 6 additions & 0 deletions Mathlib/Algebra/Associated/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,12 @@ theorem Irreducible.dvd_comm [Monoid M] {p q : M} (hp : Irreducible p) (hq : Irr
p ∣ q ↔ q ∣ p :=
⟨hp.dvd_symm hq, hq.dvd_symm hp⟩

theorem Irreducible.of_map {F : Type*} [Monoid M] [Monoid N] [FunLike F M N] [MonoidHomClass F M N]
{f : F} [IsLocalRingHom f] {x} (hfx : Irreducible (f x)) : Irreducible x :=
fun hu ↦ hfx.not_unit <| hu.map f,
by rintro p q rfl
exact (hfx.isUnit_or_isUnit <| map_mul f p q).imp (.of_map f _) (.of_map f _)⟩

section

variable [Monoid M]
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Category/AlgebraCat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ instance hasForgetToRing : HasForget₂ (AlgebraCat.{v} R) RingCat.{v} where
instance hasForgetToModule : HasForget₂ (AlgebraCat.{v} R) (ModuleCat.{v} R) where
forget₂ :=
{ obj := fun M => ModuleCat.of R M
map := fun f => ModuleCat.ofHom f.toLinearMap }
map := fun f => ModuleCat.asHom f.toLinearMap }

@[simp]
lemma forget₂_module_obj (X : AlgebraCat.{v} R) :
Expand All @@ -86,7 +86,7 @@ lemma forget₂_module_obj (X : AlgebraCat.{v} R) :

@[simp]
lemma forget₂_module_map {X Y : AlgebraCat.{v} R} (f : X ⟶ Y) :
(forget₂ (AlgebraCat.{v} R) (ModuleCat.{v} R)).map f = ModuleCat.ofHom f.toLinearMap :=
(forget₂ (AlgebraCat.{v} R) (ModuleCat.{v} R)).map f = ModuleCat.asHom f.toLinearMap :=
rfl

/-- The object in the category of R-algebras associated to a type equipped with the appropriate
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Category/BialgebraCat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ lemma of_counit {X : Type v} [Ring X] [Bialgebra R X] :
/-- A type alias for `BialgHom` to avoid confusion between the categorical and
algebraic spellings of composition. -/
@[ext]
structure Hom (V W : BialgebraCat.{v} R) :=
structure Hom (V W : BialgebraCat.{v} R) where
/-- The underlying `BialgHom` -/
toBialgHom : V →ₐc[R] W

Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Category/CoalgebraCat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ lemma of_counit {X : Type v} [AddCommGroup X] [Module R X] [Coalgebra R X] :
/-- A type alias for `CoalgHom` to avoid confusion between the categorical and
algebraic spellings of composition. -/
@[ext]
structure Hom (V W : CoalgebraCat.{v} R) :=
structure Hom (V W : CoalgebraCat.{v} R) where
/-- The underlying `CoalgHom` -/
toCoalgHom : V →ₗc[R] W

Expand Down
6 changes: 3 additions & 3 deletions Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ variable {R : Type u} [CommRing R]
/-- An `R`-coalgebra is a comonoid object in the category of `R`-modules. -/
@[simps] def toComonObj (X : CoalgebraCat R) : Comon_ (ModuleCat R) where
X := ModuleCat.of R X
counit := ModuleCat.ofHom Coalgebra.counit
comul := ModuleCat.ofHom Coalgebra.comul
counit := ModuleCat.asHom Coalgebra.counit
comul := ModuleCat.asHom Coalgebra.comul
counit_comul := by simpa only [ModuleCat.of_coe] using Coalgebra.rTensor_counit_comp_comul
comul_counit := by simpa only [ModuleCat.of_coe] using Coalgebra.lTensor_counit_comp_comul
comul_assoc := by simp_rw [ModuleCat.of_coe]; exact Coalgebra.coassoc.symm
Expand All @@ -50,7 +50,7 @@ variable (R) in
def toComon : CoalgebraCat R ⥤ Comon_ (ModuleCat R) where
obj X := toComonObj X
map f :=
{ hom := ModuleCat.ofHom f.1
{ hom := ModuleCat.asHom f.1
hom_counit := f.1.counit_comp
hom_comul := f.1.map_comp_comul.symm }

Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Category/FGModuleCat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,8 @@ end FGModuleCat
@[simp] theorem LinearMap.comp_id_fgModuleCat
{R} [Ring R] {G : FGModuleCat.{u} R} {H : Type u} [AddCommGroup H] [Module R H]
(f : G →ₗ[R] H) : f.comp (𝟙 G) = f :=
Category.id_comp (ModuleCat.ofHom f)
Category.id_comp (ModuleCat.asHom f)
@[simp] theorem LinearMap.id_fgModuleCat_comp
{R} [Ring R] {G : Type u} [AddCommGroup G] [Module R G] {H : FGModuleCat.{u} R}
(f : G →ₗ[R] H) : LinearMap.comp (𝟙 H) f = f :=
Category.comp_id (ModuleCat.ofHom f)
Category.comp_id (ModuleCat.asHom f)
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ lemma of_counit {X : Type v} [Ring X] [HopfAlgebra R X] :
/-- A type alias for `BialgHom` to avoid confusion between the categorical and
algebraic spellings of composition. -/
@[ext]
structure Hom (V W : HopfAlgebraCat.{v} R) :=
structure Hom (V W : HopfAlgebraCat.{v} R) where
/-- The underlying `BialgHom`. -/
toBialgHom : V →ₐc[R] W

Expand Down
Loading

0 comments on commit 6c642a0

Please sign in to comment.