ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Combinatorics.Subspace.IsMono.reindex
protected lemma IsMono.reindex {eη : η ≃ η'} {eα : α ≃ α'} {eι : ι ≃ ι'} {C : (ι → α) → κ}
    (hl : l.IsMono C) : (l.reindex eη eα eι).IsMono fun x ↦ C <| eα.symm ∘ x ∘ eι 
Arguments: {η : Type u_5} {α : Type u_6} {ι : Type u_7} {κ : Type u_8} {l : Combinatorics.Subspace η α ι} {η' : Type u_9} {α' : Type u_10} {ι' : Type u_11} {eη : η ≃ η'} {eα : α ≃ α'} {eι : ι ≃ ι'} {C : (ι → α) → κ} (hl : Combinatorics.Subspace.IsMono C l)
Goal: Combinatorics.Subspace.IsMono (fun x => C (⇑eα.symm ∘ x ∘ ⇑eι)) (l.reindex eη eα eι)
-- Combinatorics.Line.proper
@[ext]
structure Line (α ι : Type*) where
    idxFun : ι → Option α
    proper : ∃ i, idxFun i = none
Arguments: {α : Type u_5} {ι : Type u_6} (self : Combinatorics.Line α ι)
Goal: ∃ i, self.idxFun i = none
-- Combinatorics.Line.coe_apply
lemma coe_apply (l : Line α ι) (x : α) (i : ι) : l x i = (l.idxFun i).getD x 
Arguments: {α : Type u_2} {ι : Type u_3} (l : Combinatorics.Line α ι) (x : α) (i : ι)
Goal: (fun x i => (l.idxFun i).getD x) x i = (l.idxFun i).getD x
-- Combinatorics.Line.coe_injective
lemma coe_injective [Nontrivial α] : Injective ((⇑) : Line α ι → α → ι → α) 
Arguments: {α : Type u_2} {ι : Type u_3} [Nontrivial α]
Goal: Function.Injective fun x x_1 i => (x.idxFun i).getD x_1
-- Combinatorics.Line.toSubspaceUnit_apply
@[simp] lemma toSubspaceUnit_apply (l : Line α ι) (a) : ⇑l.toSubspaceUnit a = l (a ()) 
Arguments: {α : Type u_2} {ι : Type u_3} (l : Combinatorics.Line α ι) (a : Unit → α)
Goal: ↑l.toSubspaceUnit a = (fun x i => (l.idxFun i).getD x) (a ())
-- Combinatorics.Line.toSubspaceUnit_isMono
@[simp] lemma toSubspaceUnit_isMono {C : (ι → α) → κ} : l.toSubspaceUnit.IsMono C ↔ l.IsMono C 
Arguments: {α : Type u_2} {ι : Type u_3} {κ : Type u_4} {l : Combinatorics.Line α ι} {C : (ι → α) → κ}
Goal: Combinatorics.Subspace.IsMono C l.toSubspaceUnit ↔ Combinatorics.Line.IsMono C l
-- Combinatorics.Line.toSubspace_apply
@[simp] lemma toSubspace_apply (l : Line (η → α) ι) (a ie) :
    ⇑l.toSubspace a ie = l a ie.1 ie.2 
Arguments: {η : Type u_1} {α : Type u_2} {ι : Type u_3} (l : Combinatorics.Line (η → α) ι) (a : η → α) (ie : ι × η)
Goal: ↑l.toSubspace a ie = (fun x i => (l.idxFun i).getD x) a ie.1 ie.2
-- Combinatorics.Line.toSubspace_isMono
@[simp] lemma toSubspace_isMono {l : Line (η → α) ι} {C : (ι × η → α) → κ} :
    l.toSubspace.IsMono C ↔ l.IsMono fun x : ι → η → α  ↦ C fun (i, e) ↦ x i e 
Arguments: {η : Type u_1} {α : Type u_2} {ι : Type u_3} {κ : Type u_4} {l : Combinatorics.Line (η → α) ι} {C : (ι × η → α) → κ}
Goal: Combinatorics.Subspace.IsMono C l.toSubspace ↔
  Combinatorics.Line.IsMono
    (fun x =>
      C fun x_1 =>
        match x_1 with
        | (i, e) => x i e)
    l
-- Combinatorics.Line.AlmostMono.has_color
structure AlmostMono {α ι κ : Type*} (C : (ι → Option α) → κ) where
    line : Line (Option α) ι
    color : κ
    has_color : ∀ x : α, C (line (some x)) = color
Arguments: {α : Type u_5} {ι : Type u_6} {κ : Type u_7} {C : (ι → Option α) → κ} (self : Combinatorics.Line.AlmostMono C) (x : α)
Goal: C ((fun x i => (self.line.idxFun i).getD x) (some x)) = self.color
-- Combinatorics.Line.ColorFocused.distinct_colors
structure ColorFocused {α ι κ : Type*} (C : (ι → Option α) → κ) where
    lines : Multiset (AlmostMono C)
    focus : ι → Option α
    is_focused : ∀ p ∈ lines, p.line none = focus
    distinct_colors : (lines.map AlmostMono.color).Nodup
Arguments: {α : Type u_5} {ι : Type u_6} {κ : Type u_7} {C : (ι → Option α) → κ} (self : Combinatorics.Line.ColorFocused C)
Goal: (Multiset.map Combinatorics.Line.AlmostMono.color self.lines).Nodup
-- Combinatorics.Line.ColorFocused.is_focused
structure ColorFocused {α ι κ : Type*} (C : (ι → Option α) → κ) where
    lines : Multiset (AlmostMono C)
    focus : ι → Option α
    is_focused : ∀ p ∈ lines, p.line none = focus
    distinct_colors : (lines.map AlmostMono.color).Nodup
Arguments: {α : Type u_5} {ι : Type u_6} {κ : Type u_7} {C : (ι → Option α) → κ} (self : Combinatorics.Line.ColorFocused C) (p : Combinatorics.Line.AlmostMono C)
Goal: p ∈ self.lines → (fun x i => (p.line.idxFun i).getD x) none = self.focus
-- Combinatorics.Line.apply_def
theorem apply_def (l : Line α ι) (x : α) : l x = fun i => (l.idxFun i).getD x 
Arguments: {α : Type u_2} {ι : Type u_3} (l : Combinatorics.Line α ι) (x : α)
Goal: (fun x i => (l.idxFun i).getD x) x = fun i => (l.idxFun i).getD x
-- Combinatorics.Line.apply_none
theorem apply_none {α ι} (l : Line α ι) (x : α) (i : ι) (h : l.idxFun i = none) : l x i = x 
Arguments: {α : Type u_5} {ι : Type u_6} (l : Combinatorics.Line α ι) (x : α) (i : ι) (h : l.idxFun i = none)
Goal: (fun x i => (l.idxFun i).getD x) x i = x
-- Combinatorics.Line.apply_some
lemma apply_some (h : l.idxFun i = some a) : l x i = a 
Arguments: {α : Type u_2} {ι : Type u_3} {l : Combinatorics.Line α ι} {i : ι} {a x : α} (h : l.idxFun i = some a)
Goal: (fun x i => (l.idxFun i).getD x) x i = a
-- Combinatorics.Line.map_apply
@[simp]
theorem map_apply {α α' ι} (f : α → α') (l : Line α ι) (x : α) : l.map f (f x) = f ∘ l x 
Arguments: {α : Type u_5} {α' : Type u_6} {ι : Type u_7} (f : α → α') (l : Combinatorics.Line α ι) (x : α)
Goal: (fun x i => ((Combinatorics.Line.map f l).idxFun i).getD x) (f x) = f ∘ (fun x i => (l.idxFun i).getD x) x
-- Combinatorics.Line.vertical_apply
@[simp]
theorem vertical_apply {α ι ι'} (v : ι → α) (l : Line α ι') (x : α) :
    l.vertical v x = Sum.elim v (l x) 
Arguments: {α : Type u_5} {ι : Type u_6} {ι' : Type u_7} (v : ι → α) (l : Combinatorics.Line α ι') (x : α)
Goal: (fun x i => ((Combinatorics.Line.vertical v l).idxFun i).getD x) x = Sum.elim v ((fun x i => (l.idxFun i).getD x) x)
-- Combinatorics.Line.horizontal_apply
@[simp]
theorem horizontal_apply {α ι ι'} (l : Line α ι) (v : ι' → α) (x : α) :
    l.horizontal v x = Sum.elim (l x) v 
Arguments: {α : Type u_5} {ι : Type u_6} {ι' : Type u_7} (l : Combinatorics.Line α ι) (v : ι' → α) (x : α)
Goal: (fun x i => ((l.horizontal v).idxFun i).getD x) x = Sum.elim ((fun x i => (l.idxFun i).getD x) x) v
-- Combinatorics.Line.prod_apply
@[simp]
theorem prod_apply {α ι ι'} (l : Line α ι) (l' : Line α ι') (x : α) :
    l.prod l' x = Sum.elim (l x) (l' x) 
Arguments: {α : Type u_5} {ι : Type u_6} {ι' : Type u_7} (l : Combinatorics.Line α ι) (l' : Combinatorics.Line α ι') (x : α)
Goal: (fun x i => ((l.prod l').idxFun i).getD x) x =
  Sum.elim ((fun x i => (l.idxFun i).getD x) x) ((fun x i => (l'.idxFun i).getD x) x)
-- Combinatorics.Line.diagonal_apply
@[simp]
theorem diagonal_apply {α ι} [Nonempty ι] (x : α) : Line.diagonal α ι x = fun _ => x 
Arguments: {α : Type u_5} {ι : Type u_6} [Nonempty ι] (x : α)
Goal: (fun x i => ((Combinatorics.Line.diagonal α ι).idxFun i).getD x) x = fun x_1 => x
-- _private.Mathlib.Combinatorics.HalesJewett.0.Combinatorics.Line.exists_mono_in_high_dimension'
private theorem exists_mono_in_high_dimension' :
    ∀ (α : Type u) [Finite α] (κ : Type max v u) [Finite κ],
      ∃ (ι : Type) (_ : Fintype ι), ∀ C : (ι → α) → κ, ∃ l : Line α ι, l.IsMono C 
Arguments: (α : Type u) [Finite α] (κ : Type (max v u)) [Finite κ]
Goal: ∃ ι x, ∀ (C : (ι → α) → κ), ∃ l, Combinatorics.Line.IsMono C l
-- Combinatorics.Line.exists_mono_in_high_dimension
theorem exists_mono_in_high_dimension (α : Type u) [Finite α] (κ : Type v) [Finite κ] :
    ∃ (ι : Type) (_ : Fintype ι), ∀ C : (ι → α) → κ, ∃ l : Line α ι, l.IsMono C 
Arguments: (α : Type u) [Finite α] (κ : Type v) [Finite κ]
Goal: ∃ ι x, ∀ (C : (ι → α) → κ), ∃ l, Combinatorics.Line.IsMono C l
-- Combinatorics.exists_mono_homothetic_copy
theorem exists_mono_homothetic_copy {M κ : Type*} [AddCommMonoid M] (S : Finset M) [Finite κ]
    (C : M → κ) : ∃ a > 0, ∃ (b : M) (c : κ), ∀ s ∈ S, C (a • s + b) = c 
Arguments: {M : Type u_5} {κ : Type u_6} [AddCommMonoid M] (S : Finset M) [Finite κ] (C : M → κ)
Goal: ∃ a > 0, ∃ b c, ∀ s ∈ S, C (a • s + b) = c
-- Combinatorics.Subspace.exists_mono_in_high_dimension
theorem exists_mono_in_high_dimension (α κ η) [Finite α] [Finite κ] [Finite η] :
    ∃ (ι : Type) (_ : Fintype ι), ∀ C : (ι → α) → κ, ∃ l : Subspace η α ι, l.IsMono C 
Arguments: (α : Type u_5) (κ : Type u_6) (η : Type u_7) [Finite α] [Finite κ] [Finite η]
Goal: ∃ ι x, ∀ (C : (ι → α) → κ), ∃ l, Combinatorics.Subspace.IsMono C l
-- Combinatorics.Subspace.exists_mono_in_high_dimension_fin
theorem exists_mono_in_high_dimension_fin (α κ η) [Finite α] [Finite κ] [Finite η] :
    ∃ n, ∀ C : (Fin n → α) → κ, ∃ l : Subspace η α (Fin n), l.IsMono C 
Arguments: (α : Type u_5) (κ : Type u_6) (η : Type u_7) [Finite α] [Finite κ] [Finite η]
Goal: ∃ n, ∀ (C : (Fin n → α) → κ), ∃ l, Combinatorics.Subspace.IsMono C l
-- Configuration.Nondegenerate.exists_point
class Nondegenerate : Prop where
  exists_point : ∀ l : L, ∃ p, p ∉ l
  exists_line : ∀ p, ∃ l : L, p ∉ l
  eq_or_eq : ∀ {p₁ p₂ : P} {l₁ l₂ : L}, p₁ ∈ l₁ → p₂ ∈ l₁ → p₁ ∈ l₂ → p₂ ∈ l₂ → p₁ = p₂ ∨ l₁ = l₂
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.Nondegenerate P L] (l : L)
Goal: ∃ p, p ∉ l
-- Configuration.Nondegenerate.eq_or_eq
class Nondegenerate : Prop where
  exists_point : ∀ l : L, ∃ p, p ∉ l
  exists_line : ∀ p, ∃ l : L, p ∉ l
  eq_or_eq : ∀ {p₁ p₂ : P} {l₁ l₂ : L}, p₁ ∈ l₁ → p₂ ∈ l₁ → p₁ ∈ l₂ → p₂ ∈ l₂ → p₁ = p₂ ∨ l₁ = l₂
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.Nondegenerate P L] {p₁ p₂ : P} {l₁ l₂ : L}
Goal: p₁ ∈ l₁ → p₂ ∈ l₁ → p₁ ∈ l₂ → p₂ ∈ l₂ → p₁ = p₂ ∨ l₁ = l₂
-- Configuration.Nondegenerate.exists_line
class Nondegenerate : Prop where
  exists_point : ∀ l : L, ∃ p, p ∉ l
  exists_line : ∀ p, ∃ l : L, p ∉ l
  eq_or_eq : ∀ {p₁ p₂ : P} {l₁ l₂ : L}, p₁ ∈ l₁ → p₂ ∈ l₁ → p₁ ∈ l₂ → p₂ ∈ l₂ → p₁ = p₂ ∨ l₁ = l₂
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.Nondegenerate P L] (p : P)
Goal: ∃ l, p ∉ l
-- Configuration.HasPoints.mkPoint_ax
class HasPoints extends Nondegenerate P L where
  mkPoint : ∀ {l₁ l₂ : L}, l₁ ≠ l₂ → P
  mkPoint_ax : ∀ {l₁ l₂ : L} (h : l₁ ≠ l₂), mkPoint h ∈ l₁ ∧ mkPoint h ∈ l₂
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.HasPoints P L] {l₁ l₂ : L} (h : l₁ ≠ l₂)
Goal: Configuration.HasPoints.mkPoint h ∈ l₁ ∧ Configuration.HasPoints.mkPoint h ∈ l₂
-- Configuration.HasLines.mkLine_ax
class HasLines extends Nondegenerate P L where
  mkLine : ∀ {p₁ p₂ : P}, p₁ ≠ p₂ → L
  mkLine_ax : ∀ {p₁ p₂ : P} (h : p₁ ≠ p₂), p₁ ∈ mkLine h ∧ p₂ ∈ mkLine h
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.HasLines P L] {p₁ p₂ : P} (h : p₁ ≠ p₂)
Goal: p₁ ∈ Configuration.HasLines.mkLine h ∧ p₂ ∈ Configuration.HasLines.mkLine h
-- Configuration.HasPoints.existsUnique_point
theorem HasPoints.existsUnique_point [HasPoints P L] (l₁ l₂ : L) (hl : l₁ ≠ l₂) :
    ∃! p, p ∈ l₁ ∧ p ∈ l₂ 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasPoints P L] (l₁ l₂ : L) (hl : l₁ ≠ l₂)
Goal: ∃! p, p ∈ l₁ ∧ p ∈ l₂
-- Configuration.HasLines.existsUnique_line
theorem HasLines.existsUnique_line [HasLines P L] (p₁ p₂ : P) (hp : p₁ ≠ p₂) :
    ∃! l : L, p₁ ∈ l ∧ p₂ ∈ l 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasLines P L] (p₁ p₂ : P) (hp : p₁ ≠ p₂)
Goal: ∃! l, p₁ ∈ l ∧ p₂ ∈ l
-- Configuration.Nondegenerate.exists_injective_of_card_le
theorem Nondegenerate.exists_injective_of_card_le [Nondegenerate P L] [Fintype P] [Fintype L]
    (h : Fintype.card L ≤ Fintype.card P) : ∃ f : L → P, Function.Injective f ∧ ∀ l, f l ∉ l 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.Nondegenerate P L] [Fintype P] [Fintype L] (h : Fintype.card L ≤ Fintype.card P)
Goal: ∃ f, Function.Injective f ∧ ∀ (l : L), f l ∉ l
-- Configuration.sum_lineCount_eq_sum_pointCount
theorem sum_lineCount_eq_sum_pointCount [Fintype P] [Fintype L] :
    ∑ p : P, lineCount L p = ∑ l : L, pointCount P l 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Fintype P] [Fintype L]
Goal: ∑ p : P, Configuration.lineCount L p = ∑ l : L, Configuration.pointCount P l
-- Configuration.HasLines.pointCount_le_lineCount
theorem HasLines.pointCount_le_lineCount [HasLines P L] {p : P} {l : L} (h : p ∉ l)
    [Finite { l : L // p ∈ l }] : pointCount P l ≤ lineCount L p 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasLines P L] {p : P} {l : L} (h : p ∉ l) [Finite { l // p ∈ l }]
Goal: Configuration.pointCount P l ≤ Configuration.lineCount L p
-- Configuration.HasPoints.lineCount_le_pointCount
theorem HasPoints.lineCount_le_pointCount [HasPoints P L] {p : P} {l : L} (h : p ∉ l)
    [hf : Finite { p : P // p ∈ l }] : lineCount L p ≤ pointCount P l 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasPoints P L] {p : P} {l : L} (h : p ∉ l) [hf : Finite { p // p ∈ l }]
Goal: Configuration.lineCount L p ≤ Configuration.pointCount P l
-- Configuration.HasLines.card_le
theorem HasLines.card_le [HasLines P L] [Fintype P] [Fintype L] :
    Fintype.card P ≤ Fintype.card L 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasLines P L] [Fintype P] [Fintype L]
Goal: Fintype.card P ≤ Fintype.card L
-- Configuration.HasPoints.card_le
theorem HasPoints.card_le [HasPoints P L] [Fintype P] [Fintype L] :
    Fintype.card L ≤ Fintype.card P 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasPoints P L] [Fintype P] [Fintype L]
Goal: Fintype.card L ≤ Fintype.card P
-- Configuration.HasLines.exists_bijective_of_card_eq
theorem HasLines.exists_bijective_of_card_eq [HasLines P L] [Fintype P] [Fintype L]
    (h : Fintype.card P = Fintype.card L) :
    ∃ f : L → P, Function.Bijective f ∧ ∀ l, pointCount P l = lineCount L (f l) 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasLines P L] [Fintype P] [Fintype L] (h : Fintype.card P = Fintype.card L)
Goal: ∃ f, Function.Bijective f ∧ ∀ (l : L), Configuration.pointCount P l = Configuration.lineCount L (f l)
-- Configuration.HasLines.lineCount_eq_pointCount
theorem HasLines.lineCount_eq_pointCount [HasLines P L] [Fintype P] [Fintype L]
    (hPL : Fintype.card P = Fintype.card L) {p : P} {l : L} (hpl : p ∉ l) :
    lineCount L p = pointCount P l 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasLines P L] [Fintype P] [Fintype L] (hPL : Fintype.card P = Fintype.card L) {p : P} {l : L} (hpl : p ∉ l)
Goal: Configuration.lineCount L p = Configuration.pointCount P l
-- Configuration.HasPoints.lineCount_eq_pointCount
theorem HasPoints.lineCount_eq_pointCount [HasPoints P L] [Fintype P] [Fintype L]
    (hPL : Fintype.card P = Fintype.card L) {p : P} {l : L} (hpl : p ∉ l) :
    lineCount L p = pointCount P l 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasPoints P L] [Fintype P] [Fintype L] (hPL : Fintype.card P = Fintype.card L) {p : P} {l : L} (hpl : p ∉ l)
Goal: Configuration.lineCount L p = Configuration.pointCount P l
-- Configuration.ProjectivePlane.exists_config
class ProjectivePlane extends HasPoints P L, HasLines P L where
  exists_config :
    ∃ (p₁ p₂ p₃ : P) (l₁ l₂ l₃ : L),
      p₁ ∉ l₂ ∧ p₁ ∉ l₃ ∧ p₂ ∉ l₁ ∧ p₂ ∈ l₂ ∧ p₂ ∈ l₃ ∧ p₃ ∉ l₁ ∧ p₃ ∈ l₂ ∧ p₃ ∉ l₃
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [self : Configuration.ProjectivePlane P L]
Goal: ∃ p₁ p₂ p₃ l₁ l₂ l₃, p₁ ∉ l₂ ∧ p₁ ∉ l₃ ∧ p₂ ∉ l₁ ∧ p₂ ∈ l₂ ∧ p₂ ∈ l₃ ∧ p₃ ∉ l₁ ∧ p₃ ∈ l₂ ∧ p₃ ∉ l₃
-- Configuration.ProjectivePlane.card_points_eq_card_lines
theorem card_points_eq_card_lines [Fintype P] [Fintype L] : Fintype.card P = Fintype.card L 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Fintype P] [Fintype L]
Goal: Fintype.card P = Fintype.card L
-- Configuration.ProjectivePlane.lineCount_eq_lineCount
theorem lineCount_eq_lineCount [Finite P] [Finite L] (p q : P) : lineCount L p = lineCount L q 
Arguments: {P : Type u_1} (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (p q : P)
Goal: Configuration.lineCount L p = Configuration.lineCount L q
-- Configuration.ProjectivePlane.pointCount_eq_pointCount
theorem pointCount_eq_pointCount [Finite P] [Finite L] (l m : L) :
    pointCount P l = pointCount P m 
Arguments: (P : Type u_1) {L : Type u_2} [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (l m : L)
Goal: Configuration.pointCount P l = Configuration.pointCount P m
-- Configuration.ProjectivePlane.lineCount_eq_pointCount
theorem lineCount_eq_pointCount [Finite P] [Finite L] (p : P) (l : L) :
    lineCount L p = pointCount P l 
Arguments: {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (p : P) (l : L)
Goal: Configuration.lineCount L p = Configuration.pointCount P l
-- Configuration.ProjectivePlane.Dual.order
theorem Dual.order [Finite P] [Finite L] : order (Dual L) (Dual P) = order P L 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L]
Goal: Configuration.ProjectivePlane.order (Configuration.Dual L) (Configuration.Dual P) =
  Configuration.ProjectivePlane.order P L
-- Configuration.ProjectivePlane.lineCount_eq
theorem lineCount_eq [Finite P] [Finite L] (p : P) : lineCount L p = order P L + 1 
Arguments: {P : Type u_1} (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (p : P)
Goal: Configuration.lineCount L p = Configuration.ProjectivePlane.order P L + 1
-- Configuration.ProjectivePlane.pointCount_eq
theorem pointCount_eq [Finite P] [Finite L] (l : L) : pointCount P l = order P L + 1 
Arguments: (P : Type u_1) {L : Type u_2} [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (l : L)
Goal: Configuration.pointCount P l = Configuration.ProjectivePlane.order P L + 1
-- Configuration.ProjectivePlane.one_lt_order
theorem one_lt_order [Finite P] [Finite L] : 1 < order P L 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L]
Goal: 1 < Configuration.ProjectivePlane.order P L
-- Configuration.ProjectivePlane.two_lt_lineCount
theorem two_lt_lineCount [Finite P] [Finite L] (p : P) : 2 < lineCount L p 
Arguments: {P : Type u_1} (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (p : P)
Goal: 2 < Configuration.lineCount L p
-- Configuration.ProjectivePlane.two_lt_pointCount
theorem two_lt_pointCount [Finite P] [Finite L] (l : L) : 2 < pointCount P l 
Arguments: (P : Type u_1) {L : Type u_2} [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Finite L] (l : L)
Goal: 2 < Configuration.pointCount P l
-- Configuration.ProjectivePlane.card_points
theorem card_points [Fintype P] [Finite L] : Fintype.card P = order P L ^ 2 + order P L + 1 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Fintype P] [Finite L]
Goal: Fintype.card P = Configuration.ProjectivePlane.order P L ^ 2 + Configuration.ProjectivePlane.order P L + 1
-- Configuration.ProjectivePlane.card_lines
theorem card_lines [Finite P] [Fintype L] : Fintype.card L = order P L ^ 2 + order P L + 1 
Arguments: (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.ProjectivePlane P L] [Finite P] [Fintype L]
Goal: Fintype.card L = Configuration.ProjectivePlane.order P L ^ 2 + Configuration.ProjectivePlane.order P L + 1
-- schnirelmannDensity_nonneg
lemma schnirelmannDensity_nonneg : 0 ≤ schnirelmannDensity A 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A]
Goal: 0 ≤ schnirelmannDensity A
-- schnirelmannDensity_le_div
lemma schnirelmannDensity_le_div {n : ℕ} (hn : n ≠ 0) :
    schnirelmannDensity A ≤ ((Ioc 0 n).filter (· ∈ A)).card / n 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {n : ℕ} (hn : n ≠ 0)
Goal: schnirelmannDensity A ≤ ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card / ↑n
-- schnirelmannDensity_mul_le_card_filter
lemma schnirelmannDensity_mul_le_card_filter {n : ℕ} :
    schnirelmannDensity A * n ≤ ((Ioc 0 n).filter (· ∈ A)).card 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {n : ℕ}
Goal: schnirelmannDensity A * ↑n ≤ ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card
-- schnirelmannDensity_le_of_le
lemma schnirelmannDensity_le_of_le {x : ℝ} (n : ℕ) (hn : n ≠ 0)
    (hx : ((Ioc 0 n).filter (· ∈ A)).card / n ≤ x) : schnirelmannDensity A ≤ x 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {x : ℝ} (n : ℕ) (hn : n ≠ 0) (hx : ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card / ↑n ≤ x)
Goal: schnirelmannDensity A ≤ x
-- schnirelmannDensity_le_one
lemma schnirelmannDensity_le_one : schnirelmannDensity A ≤ 1 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A]
Goal: schnirelmannDensity A ≤ 1
-- schnirelmannDensity_le_of_not_mem
lemma schnirelmannDensity_le_of_not_mem {k : ℕ} (hk : k ∉ A) :
    schnirelmannDensity A ≤ 1 - (k⁻¹ : ℝ) 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {k : ℕ} (hk : k ∉ A)
Goal: schnirelmannDensity A ≤ 1 - (↑k)⁻¹
-- schnirelmannDensity_eq_zero_of_one_not_mem
lemma schnirelmannDensity_eq_zero_of_one_not_mem (h : 1 ∉ A) : schnirelmannDensity A = 0 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] (h : 1 ∉ A)
Goal: schnirelmannDensity A = 0
-- schnirelmannDensity_le_of_subset
lemma schnirelmannDensity_le_of_subset {B : Set ℕ} [DecidablePred (· ∈ B)] (h : A ⊆ B) :
    schnirelmannDensity A ≤ schnirelmannDensity B 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {B : Set ℕ} [DecidablePred fun x => x ∈ B] (h : A ⊆ B)
Goal: schnirelmannDensity A ≤ schnirelmannDensity B
-- schnirelmannDensity_eq_one_iff
lemma schnirelmannDensity_eq_one_iff : schnirelmannDensity A = 1 ↔ {0}ᶜ ⊆ A 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A]
Goal: schnirelmannDensity A = 1 ↔ {0}ᶜ ⊆ A
-- schnirelmannDensity_eq_one_iff_of_zero_mem
lemma schnirelmannDensity_eq_one_iff_of_zero_mem (hA : 0 ∈ A) :
    schnirelmannDensity A = 1 ↔ A = Set.univ 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] (hA : 0 ∈ A)
Goal: schnirelmannDensity A = 1 ↔ A = Set.univ
-- le_schnirelmannDensity_iff
lemma le_schnirelmannDensity_iff {x : ℝ} :
    x ≤ schnirelmannDensity A ↔ ∀ n : ℕ, 0 < n → x ≤ ((Ioc 0 n).filter (· ∈ A)).card / n 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {x : ℝ}
Goal: x ≤ schnirelmannDensity A ↔ ∀ (n : ℕ), 0 < n → x ≤ ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card / ↑n
-- schnirelmannDensity_lt_iff
lemma schnirelmannDensity_lt_iff {x : ℝ} :
    schnirelmannDensity A < x ↔ ∃ n : ℕ, 0 < n ∧ ((Ioc 0 n).filter (· ∈ A)).card / n < x 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {x : ℝ}
Goal: schnirelmannDensity A < x ↔ ∃ n, 0 < n ∧ ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card / ↑n < x
-- schnirelmannDensity_le_iff_forall
lemma schnirelmannDensity_le_iff_forall {x : ℝ} :
    schnirelmannDensity A ≤ x ↔
      ∀ ε : ℝ, 0 < ε → ∃ n : ℕ, 0 < n ∧ ((Ioc 0 n).filter (· ∈ A)).card / n < x + ε 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {x : ℝ}
Goal: schnirelmannDensity A ≤ x ↔
  ∀ (ε : ℝ), 0 < ε → ∃ n, 0 < n ∧ ↑(Finset.filter (fun x => x ∈ A) (Finset.Ioc 0 n)).card / ↑n < x + ε
-- schnirelmannDensity_congr'
lemma schnirelmannDensity_congr' {B : Set ℕ} [DecidablePred (· ∈ B)]
    (h : ∀ n > 0, n ∈ A ↔ n ∈ B) : schnirelmannDensity A = schnirelmannDensity B 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {B : Set ℕ} [DecidablePred fun x => x ∈ B] (h : ∀ n > 0, n ∈ A ↔ n ∈ B)
Goal: schnirelmannDensity A = schnirelmannDensity B
-- schnirelmannDensity_insert_zero
@[simp] lemma schnirelmannDensity_insert_zero [DecidablePred (· ∈ insert 0 A)] :
    schnirelmannDensity (insert 0 A) = schnirelmannDensity A 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] [DecidablePred fun x => x ∈ insert 0 A]
Goal: schnirelmannDensity (insert 0 A) = schnirelmannDensity A
-- schnirelmannDensity_diff_singleton_zero
lemma schnirelmannDensity_diff_singleton_zero [DecidablePred (· ∈ A \ {0})] :
    schnirelmannDensity (A \ {0}) = schnirelmannDensity A 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] [DecidablePred fun x => x ∈ A \ {0}]
Goal: schnirelmannDensity (A \ {0}) = schnirelmannDensity A
-- schnirelmannDensity_congr
lemma schnirelmannDensity_congr {B : Set ℕ} [DecidablePred (· ∈ B)] (h : A = B) :
    schnirelmannDensity A = schnirelmannDensity B 
Arguments: {A : Set ℕ} [DecidablePred fun x => x ∈ A] {B : Set ℕ} [DecidablePred fun x => x ∈ B] (h : A = B)
Goal: schnirelmannDensity A = schnirelmannDensity B