ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ONote.NF.below_of_lt
theorem NF.below_of_lt {e n a b} (H : repr e < b) :
    NF (ONote.oadd e n a) → NFBelow (ONote.oadd e n a) b
  
Arguments: {e : ONote} {n : ℕ+} {a : ONote} {b : Ordinal.{0}} (H : e.repr < b)
Goal: (e.oadd n a).NF → (e.oadd n a).NFBelow b
-- ONote.NF.below_of_lt'
theorem NF.below_of_lt' : ∀ {o b}, repr o < ω ^ b → NF o → NFBelow o b
  
Arguments: {o : ONote} {b : Ordinal.{0}}
Goal: o.repr < ω ^ b → o.NF → o.NFBelow b
-- ONote.nfBelow_ofNat
theorem nfBelow_ofNat : ∀ n, NFBelow (ofNat n) 1
  
Arguments: (n : ℕ)
Goal: (↑n).NFBelow 1
-- ONote.oadd_lt_oadd_1
theorem oadd_lt_oadd_1 {e₁ n₁ o₁ e₂ n₂ o₂} (h₁ : NF (oadd e₁ n₁ o₁)) (h : e₁ < e₂) :
    oadd e₁ n₁ o₁ < oadd e₂ n₂ o₂ 
Arguments: {e₁ : ONote} {n₁ : ℕ+} {o₁ e₂ : ONote} {n₂ : ℕ+} {o₂ : ONote} (h₁ : (e₁.oadd n₁ o₁).NF) (h : e₁ < e₂)
Goal: e₁.oadd n₁ o₁ < e₂.oadd n₂ o₂
-- ONote.oadd_lt_oadd_2
theorem oadd_lt_oadd_2 {e o₁ o₂ : ONote} {n₁ n₂ : ℕ+} (h₁ : NF (oadd e n₁ o₁)) (h : (n₁ : ℕ) < n₂) :
    oadd e n₁ o₁ < oadd e n₂ o₂ 
Arguments: {e o₁ o₂ : ONote} {n₁ n₂ : ℕ+} (h₁ : (e.oadd n₁ o₁).NF) (h : ↑n₁ < ↑n₂)
Goal: e.oadd n₁ o₁ < e.oadd n₂ o₂
-- ONote.oadd_lt_oadd_3
theorem oadd_lt_oadd_3 {e n a₁ a₂} (h : a₁ < a₂) : oadd e n a₁ < oadd e n a₂ 
Arguments: {e : ONote} {n : ℕ+} {a₁ a₂ : ONote} (h : a₁ < a₂)
Goal: e.oadd n a₁ < e.oadd n a₂
-- ONote.cmp_compares
theorem cmp_compares : ∀ (a b : ONote) [NF a] [NF b], (cmp a b).Compares a b
  
Arguments: (a b : ONote) [a.NF] [b.NF]
Goal: (a.cmp b).Compares a b
-- ONote.repr_inj
theorem repr_inj {a b} [NF a] [NF b] : repr a = repr b ↔ a = b 
Arguments: {a b : ONote} [a.NF] [b.NF]
Goal: a.repr = b.repr ↔ a = b
-- ONote.NF.of_dvd_omega_opow
theorem NF.of_dvd_omega_opow {b e n a} (h : NF (ONote.oadd e n a))
    (d : ω ^ b ∣ repr (ONote.oadd e n a)) :
    b ≤ repr e ∧ ω ^ b ∣ repr a 
Arguments: {b : Ordinal.{0}} {e : ONote} {n : ℕ+} {a : ONote} (h : (e.oadd n a).NF) (d : ω ^ b ∣ (e.oadd n a).repr)
Goal: b ≤ e.repr ∧ ω ^ b ∣ a.repr
-- ONote.NF.of_dvd_omega
theorem NF.of_dvd_omega {e n a} (h : NF (ONote.oadd e n a)) :
    ω ∣ repr (ONote.oadd e n a) → repr e ≠ 0 ∧ ω ∣ repr a 
Arguments: {e : ONote} {n : ℕ+} {a : ONote} (h : (e.oadd n a).NF)
Goal: ω ∣ (e.oadd n a).repr → e.repr ≠ 0 ∧ ω ∣ a.repr
-- ONote.nfBelow_iff_topBelow
theorem nfBelow_iff_topBelow {b} [NF b] : ∀ {o}, NFBelow o (repr b) ↔ NF o ∧ TopBelow b o
  
Arguments: {b : ONote} [b.NF] {o : ONote}
Goal: o.NFBelow b.repr ↔ o.NF ∧ b.TopBelow o
-- ONote.zero_add
@[simp]
theorem zero_add (o : ONote) : 0 + o = o 
Arguments: (o : ONote)
Goal: 0 + o = o
-- ONote.oadd_add
theorem oadd_add (e n a o) : oadd e n a + o = addAux e n (a + o) 
Arguments: (e : ONote) (n : ℕ+) (a o : ONote)
Goal: e.oadd n a + o = e.addAux n (a + o)
-- ONote.add_nfBelow
theorem add_nfBelow {b} : ∀ {o₁ o₂}, NFBelow o₁ b → NFBelow o₂ b → NFBelow (o₁ + o₂) b
  
Arguments: {b : Ordinal.{0}} {o₁ o₂ : ONote}
Goal: o₁.NFBelow b → o₂.NFBelow b → (o₁ + o₂).NFBelow b
-- ONote.repr_add
@[simp]
theorem repr_add : ∀ (o₁ o₂) [NF o₁] [NF o₂], repr (o₁ + o₂) = repr o₁ + repr o₂
  
Arguments: (o₁ o₂ : ONote) [o₁.NF] [o₂.NF]
Goal: (o₁ + o₂).repr = o₁.repr + o₂.repr
-- ONote.sub_nfBelow
theorem sub_nfBelow : ∀ {o₁ o₂ b}, NFBelow o₁ b → NF o₂ → NFBelow (o₁ - o₂) b
  
Arguments: {o₁ o₂ : ONote} {b : Ordinal.{0}}
Goal: o₁.NFBelow b → o₂.NF → (o₁ - o₂).NFBelow b
-- ONote.repr_sub
@[simp]
theorem repr_sub : ∀ (o₁ o₂) [NF o₁] [NF o₂], repr (o₁ - o₂) = repr o₁ - repr o₂
  
Arguments: (o₁ o₂ : ONote) [o₁.NF] [o₂.NF]
Goal: (o₁ - o₂).repr = o₁.repr - o₂.repr
-- ONote.oadd_mul
theorem oadd_mul (e₁ n₁ a₁ e₂ n₂ a₂) :
    oadd e₁ n₁ a₁ * oadd e₂ n₂ a₂ =
      if e₂ = 0 then oadd e₁ (n₁ * n₂) a₁ else oadd (e₁ + e₂) n₂ (oadd e₁ n₁ a₁ * a₂) 
Arguments: (e₁ : ONote) (n₁ : ℕ+) (a₁ e₂ : ONote) (n₂ : ℕ+) (a₂ : ONote)
Goal: e₁.oadd n₁ a₁ * e₂.oadd n₂ a₂ = if e₂ = 0 then e₁.oadd (n₁ * n₂) a₁ else (e₁ + e₂).oadd n₂ (e₁.oadd n₁ a₁ * a₂)
-- ONote.oadd_mul_nfBelow
theorem oadd_mul_nfBelow {e₁ n₁ a₁ b₁} (h₁ : NFBelow (oadd e₁ n₁ a₁) b₁) :
    ∀ {o₂ b₂}, NFBelow o₂ b₂ → NFBelow (oadd e₁ n₁ a₁ * o₂) (repr e₁ + b₂)
  
Arguments: {e₁ : ONote} {n₁ : ℕ+} {a₁ : ONote} {b₁ : Ordinal.{0}} (h₁ : (e₁.oadd n₁ a₁).NFBelow b₁) {o₂ : ONote} {b₂ : Ordinal.{0}}
Goal: o₂.NFBelow b₂ → (e₁.oadd n₁ a₁ * o₂).NFBelow (e₁.repr + b₂)
-- ONote.repr_mul
@[simp]
theorem repr_mul : ∀ (o₁ o₂) [NF o₁] [NF o₂], repr (o₁ * o₂) = repr o₁ * repr o₂
  
Arguments: (o₁ o₂ : ONote) [o₁.NF] [o₂.NF]
Goal: (o₁ * o₂).repr = o₁.repr * o₂.repr
-- ONote.opow_def
theorem opow_def (o₁ o₂ : ONote) : o₁ ^ o₂ = opowAux2 o₂ (split o₁) 
Arguments: (o₁ o₂ : ONote)
Goal: o₁ ^ o₂ = o₂.opowAux2 o₁.split
-- ONote.split_eq_scale_split'
theorem split_eq_scale_split' : ∀ {o o' m} [NF o], split' o = (o', m) → split o = (scale 1 o', m)
  
Arguments: {o o' : ONote} {m : ℕ} [o.NF]
Goal: o.split' = (o', m) → o.split = (ONote.scale 1 o', m)
-- ONote.nf_repr_split'
theorem nf_repr_split' : ∀ {o o' m} [NF o], split' o = (o', m) → NF o' ∧ repr o = ω * repr o' + m
  
Arguments: {o o' : ONote} {m : ℕ} [o.NF]
Goal: o.split' = (o', m) → o'.NF ∧ o.repr = ω * o'.repr + ↑m
-- ONote.scale_eq_mul
theorem scale_eq_mul (x) [NF x] : ∀ (o) [NF o], scale x o = oadd x 1 0 * o
  
Arguments: (x : ONote) [x.NF] (o : ONote) [o.NF]
Goal: x.scale o = x.oadd 1 0 * o
-- ONote.repr_scale
@[simp]
theorem repr_scale (x) [NF x] (o) [NF o] : repr (scale x o) = ω ^ repr x * repr o 
Arguments: (x : ONote) [x.NF] (o : ONote) [o.NF]
Goal: (x.scale o).repr = ω ^ x.repr * o.repr
-- ONote.nf_repr_split
theorem nf_repr_split {o o' m} [NF o] (h : split o = (o', m)) : NF o' ∧ repr o = repr o' + m 
Arguments: {o o' : ONote} {m : ℕ} [o.NF] (h : o.split = (o', m))
Goal: o'.NF ∧ o.repr = o'.repr + ↑m
-- ONote.split_dvd
theorem split_dvd {o o' m} [NF o] (h : split o = (o', m)) : ω ∣ repr o' 
Arguments: {o o' : ONote} {m : ℕ} [o.NF] (h : o.split = (o', m))
Goal: ω ∣ o'.repr
-- ONote.split_add_lt
theorem split_add_lt {o e n a m} [NF o] (h : split o = (oadd e n a, m)) :
    repr a + m < ω ^ repr e 
Arguments: {o e : ONote} {n : ℕ+} {a : ONote} {m : ℕ} [o.NF] (h : o.split = (e.oadd n a, m))
Goal: a.repr + ↑m < ω ^ e.repr
-- ONote.mulNat_eq_mul
@[simp]
theorem mulNat_eq_mul (n o) : mulNat o n = o * ofNat n 
Arguments: (n : ℕ) (o : ONote)
Goal: o.mulNat n = o * ↑n
-- ONote.scale_opowAux
theorem scale_opowAux (e a0 a : ONote) [NF e] [NF a0] [NF a] :
    ∀ k m, repr (opowAux e a0 a k m) = ω ^ repr e * repr (opowAux 0 a0 a k m)
  
Arguments: (e a0 a : ONote) [e.NF] [a0.NF] [a.NF] (k m : ℕ)
Goal: (e.opowAux a0 a k m).repr = ω ^ e.repr * (ONote.opowAux 0 a0 a k m).repr
-- ONote.repr_opow_aux₁
theorem repr_opow_aux₁ {e a} [Ne : NF e] [Na : NF a] {a' : Ordinal} (e0 : repr e ≠ 0)
    (h : a' < (ω : Ordinal.{0}) ^ repr e) (aa : repr a = a') (n : ℕ+) :
    ((ω : Ordinal.{0}) ^ repr e * (n : ℕ) + a') ^ (ω : Ordinal.{0}) =
      (ω ^ repr e) ^ (ω : Ordinal.{0}) 
Arguments: {e a : ONote} [Ne : e.NF] [Na : a.NF] {a' : Ordinal.{0}} (e0 : e.repr ≠ 0) (h : a' < ω ^ e.repr) (aa : a.repr = a') (n : ℕ+)
Goal: (ω ^ e.repr * ↑↑n + a') ^ ω = (ω ^ e.repr) ^ ω
-- ONote.repr_opow_aux₂
theorem repr_opow_aux₂ {a0 a'} [N0 : NF a0] [Na' : NF a'] (m : ℕ) (d : ω ∣ repr a')
    (e0 : repr a0 ≠ 0) (h : repr a' + m < (ω ^ repr a0)) (n : ℕ+) (k : ℕ) :
    let R := repr (opowAux 0 a0 (oadd a0 n a' * ofNat m) k m)
    (k ≠ 0 → R < ((ω ^ repr a0) ^ succ (k : Ordinal))) ∧
      ((ω ^ repr a0) ^ (k : Ordinal)) * ((ω ^ repr a0) * (n : ℕ) + repr a') + R =
        ((ω ^ repr a0) * (n : ℕ) + repr a' + m) ^ succ (k : Ordinal) 
Arguments: {a0 a' : ONote} [N0 : a0.NF] [Na' : a'.NF] (m : ℕ) (d : ω ∣ a'.repr) (e0 : a0.repr ≠ 0) (h : a'.repr + ↑m < ω ^ a0.repr) (n : ℕ+) (k : ℕ)
Goal: let R := (ONote.opowAux 0 a0 (a0.oadd n a' * ↑m) k m).repr;
(k ≠ 0 → R < (ω ^ a0.repr) ^ Order.succ ↑k) ∧
  (ω ^ a0.repr) ^ ↑k * (ω ^ a0.repr * ↑↑n + a'.repr) + R = (ω ^ a0.repr * ↑↑n + a'.repr + ↑m) ^ Order.succ ↑k
-- ONote.repr_opow
theorem repr_opow (o₁ o₂) [NF o₁] [NF o₂] : repr (o₁ ^ o₂) = repr o₁ ^ repr o₂ 
Arguments: (o₁ o₂ : ONote) [o₁.NF] [o₂.NF]
Goal: (o₁ ^ o₂).repr = o₁.repr ^ o₂.repr
-- _private.Mathlib.SetTheory.Ordinal.Notation.0.ONote.exists_lt_add
private theorem exists_lt_add {α} [hα : Nonempty α] {o : Ordinal} {f : α → Ordinal}
    (H : ∀ ⦃a⦄, a < o → ∃ i, a < f i) {b : Ordinal} ⦃a⦄ (h : a < b + o) : ∃ i, a < b + f i 
Arguments: {α : Sort u_1} [hα : Nonempty α] {o : Ordinal.{u_2}} {f : α → Ordinal.{u_2}} (H : ∀ ⦃a : Ordinal.{u_2}⦄, a < o → ∃ i, a < f i) {b : Ordinal.{u_2}} ⦃a : Ordinal.{u_2}⦄ (h : a < b + o)
Goal: ∃ i, a < b + f i
-- _private.Mathlib.SetTheory.Ordinal.Notation.0.ONote.exists_lt_mul_omega'
private theorem exists_lt_mul_omega' {o : Ordinal} ⦃a⦄ (h : a < o * ω) :
    ∃ i : ℕ, a < o * ↑i + o 
Arguments: {o : Ordinal.{u_1}} ⦃a : Ordinal.{u_1}⦄ (h : a < o * ω)
Goal: ∃ i, a < o * ↑i + o
-- _private.Mathlib.SetTheory.Ordinal.Notation.0.ONote.exists_lt_omega_opow'
private theorem exists_lt_omega_opow' {α} {o b : Ordinal} (hb : 1 < b) (ho : o.IsLimit)
    {f : α → Ordinal} (H : ∀ ⦃a⦄, a < o → ∃ i, a < f i) ⦃a⦄ (h : a < b ^ o) :
        ∃ i, a < b ^ f i 
Arguments: {α : Sort u_1} {o b : Ordinal.{u_2}} (hb : 1 < b) (ho : o.IsLimit) {f : α → Ordinal.{u_2}} (H : ∀ ⦃a : Ordinal.{u_2}⦄, a < o → ∃ i, a < f i) ⦃a : Ordinal.{u_2}⦄ (h : a < b ^ o)
Goal: ∃ i, a < b ^ f i
-- ONote.fundamentalSequenceProp_inl_none
theorem fundamentalSequenceProp_inl_none (o) :
    FundamentalSequenceProp o (Sum.inl none) ↔ o = 0 
Arguments: (o : ONote)
Goal: o.FundamentalSequenceProp (Sum.inl none) ↔ o = 0
-- ONote.fundamentalSequenceProp_inl_some
theorem fundamentalSequenceProp_inl_some (o a) :
    FundamentalSequenceProp o (Sum.inl (some a)) ↔ o.repr = succ a.repr ∧ (o.NF → a.NF) 
Arguments: (o a : ONote)
Goal: o.FundamentalSequenceProp (Sum.inl (some a)) ↔ o.repr = Order.succ a.repr ∧ (o.NF → a.NF)
-- ONote.fundamentalSequenceProp_inr
theorem fundamentalSequenceProp_inr (o f) :
    FundamentalSequenceProp o (Sum.inr f) ↔
      o.repr.IsLimit ∧
        (∀ i, f i < f (i + 1) ∧ f i < o ∧ (o.NF → (f i).NF)) ∧
        ∀ a, a < o.repr → ∃ i, a < (f i).repr 
Arguments: (o : ONote) (f : ℕ → ONote)
Goal: o.FundamentalSequenceProp (Sum.inr f) ↔
  o.repr.IsLimit ∧ (∀ (i : ℕ), f i < f (i + 1) ∧ f i < o ∧ (o.NF → (f i).NF)) ∧ ∀ a < o.repr, ∃ i, a < (f i).repr
-- ONote.fundamentalSequence_has_prop
theorem fundamentalSequence_has_prop (o) : FundamentalSequenceProp o (fundamentalSequence o) 
Arguments: (o : ONote)
Goal: o.FundamentalSequenceProp o.fundamentalSequence
-- ONote.fastGrowing_def
@[nolint unusedHavesSuffices]
theorem fastGrowing_def {o : ONote} {x} (e : fundamentalSequence o = x) :
    fastGrowing o =
      match
        (motive := (x : Option ONote ⊕ (ℕ → ONote)) → FundamentalSequenceProp o x → ℕ → ℕ)
        x, e ▸ fundamentalSequence_has_prop o with
      | Sum.inl none, _ => Nat.succ
      | Sum.inl (some a), _ =>
        fun i => (fastGrowing a)^[i] i
      | Sum.inr f, _ => fun i =>
        fastGrowing (f i) i 
Arguments: {o : ONote} {x : Option ONote ⊕ (ℕ → ONote)} (e : o.fundamentalSequence = x)
Goal: o.fastGrowing =
  match (motive := (x : Option ONote ⊕ (ℕ → ONote)) → o.FundamentalSequenceProp x → ℕ → ℕ) x, ⋯ with
  | Sum.inl none, x => Nat.succ
  | Sum.inl (some a), x => fun i => a.fastGrowing^[i] i
  | Sum.inr f, x => fun i => (f i).fastGrowing i
-- ONote.fastGrowing_zero'
theorem fastGrowing_zero' (o : ONote) (h : fundamentalSequence o = Sum.inl none) :
    fastGrowing o = Nat.succ 
Arguments: (o : ONote) (h : o.fundamentalSequence = Sum.inl none)
Goal: o.fastGrowing = Nat.succ
-- ONote.fastGrowing_succ
theorem fastGrowing_succ (o) {a} (h : fundamentalSequence o = Sum.inl (some a)) :
    fastGrowing o = fun i => (fastGrowing a)^[i] i 
Arguments: (o : ONote) {a : ONote} (h : o.fundamentalSequence = Sum.inl (some a))
Goal: o.fastGrowing = fun i => a.fastGrowing^[i] i
-- ONote.fastGrowing_limit
theorem fastGrowing_limit (o) {f} (h : fundamentalSequence o = Sum.inr f) :
    fastGrowing o = fun i => fastGrowing (f i) i 
Arguments: (o : ONote) {f : ℕ → ONote} (h : o.fundamentalSequence = Sum.inr f)
Goal: o.fastGrowing = fun i => (f i).fastGrowing i
-- ONote.fastGrowing_zero
@[simp]
theorem fastGrowing_zero : fastGrowing 0 = Nat.succ 
Goal: ONote.fastGrowing 0 = Nat.succ
-- ONote.fastGrowing_one
@[simp]
theorem fastGrowing_one : fastGrowing 1 = fun n => 2 * n 
Goal: ONote.fastGrowing 1 = fun n => 2 * n
-- ONote.fastGrowing_two
@[simp]
theorem fastGrowing_two : fastGrowing 2 = fun n => (2 ^ n) * n 
Goal: ONote.fastGrowing 2 = fun n => 2 ^ n * n
-- ONote.fastGrowingε₀_zero
theorem fastGrowingε₀_zero : fastGrowingε₀ 0 = 1 
Goal: ONote.fastGrowingε₀ 0 = 1
-- ONote.fastGrowingε₀_one
theorem fastGrowingε₀_one : fastGrowingε₀ 1 = 2 
Goal: ONote.fastGrowingε₀ 1 = 2
-- ONote.fastGrowingε₀_two
theorem fastGrowingε₀_two : fastGrowingε₀ 2 = 2048 
Goal: ONote.fastGrowingε₀ 2 = 2048
-- NONote.lt_wf
theorem lt_wf : @WellFounded NONote (· < ·) 
Goal: WellFounded fun x x_1 => x < x_1
-- NONote.cmp_compares
theorem cmp_compares : ∀ a b : NONote, (cmp a b).Compares a b
  
Arguments: (a b : NONote)
Goal: (a.cmp b).Compares a b
-- NONote.repr_add
theorem repr_add (a b) : repr (a + b) = repr a + repr b 
Arguments: (a b : NONote)
Goal: (a + b).repr = a.repr + b.repr
-- NONote.repr_sub
theorem repr_sub (a b) : repr (a - b) = repr a - repr b 
Arguments: (a b : NONote)
Goal: (a - b).repr = a.repr - b.repr
-- NONote.repr_mul
theorem repr_mul (a b) : repr (a * b) = repr a * repr b 
Arguments: (a b : NONote)
Goal: (a * b).repr = a.repr * b.repr
-- NONote.repr_opow
theorem repr_opow (a b) : repr (opow a b) = repr a ^ repr b 
Arguments: (a b : NONote)
Goal: (a.opow b).repr = a.repr ^ b.repr
-- SimpleGraph.Subgraph.edge_vert
@[ext]
structure Subgraph {V : Type u} (G : SimpleGraph V) where
  verts : Set V
  Adj : V → V → Prop
  adj_sub : ∀ {v w : V}, Adj v w → G.Adj v w
  edge_vert : ∀ {v w : V}, Adj v w → v ∈ verts
  symm : Symmetric Adj := by aesop_graph
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.Subgraph) {v w : V}
Goal: self.Adj v w → v ∈ self.verts
-- SimpleGraph.Subgraph.symm
@[ext]
structure Subgraph {V : Type u} (G : SimpleGraph V) where
  verts : Set V
  Adj : V → V → Prop
  adj_sub : ∀ {v w : V}, Adj v w → G.Adj v w
  edge_vert : ∀ {v w : V}, Adj v w → v ∈ verts
  symm : Symmetric Adj := by aesop_graph
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.Subgraph)
Goal: Symmetric self.Adj
-- SimpleGraph.Subgraph.adj_sub
@[ext]
structure Subgraph {V : Type u} (G : SimpleGraph V) where
  verts : Set V
  Adj : V → V → Prop
  adj_sub : ∀ {v w : V}, Adj v w → G.Adj v w
  edge_vert : ∀ {v w : V}, Adj v w → v ∈ verts
  symm : Symmetric Adj := by aesop_graph
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.Subgraph) {v w : V}
Goal: self.Adj v w → G.Adj v w
-- SimpleGraph.singletonSubgraph_verts
@[simps]
protected def singletonSubgraph (G : SimpleGraph V) (v : V) : G.Subgraph 
Arguments: {V : Type u} (G : SimpleGraph V) (v : V)
Goal: (G.singletonSubgraph v).verts = {v}
-- SimpleGraph.singletonSubgraph_adj
@[simps]
protected def singletonSubgraph (G : SimpleGraph V) (v : V) : G.Subgraph 
Arguments: {V : Type u} (G : SimpleGraph V) (v : V)
Goal: ∀ (a a_1 : V), (G.singletonSubgraph v).Adj a a_1 = ⊥ a a_1
-- SimpleGraph.subgraphOfAdj_verts
@[simps]
def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph 
Arguments: {V : Type u} (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w)
Goal: (G.subgraphOfAdj hvw).verts = {v, w}
-- SimpleGraph.subgraphOfAdj_adj
@[simps]
def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph 
Arguments: {V : Type u} (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) (a b : V)
Goal: (G.subgraphOfAdj hvw).Adj a b = (s(v, w) = s(a, b))
-- SimpleGraph.Subgraph.loopless
protected theorem loopless (G' : Subgraph G) : Irreflexive G'.Adj 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph)
Goal: Irreflexive G'.Adj
-- SimpleGraph.Subgraph.adj_comm
theorem adj_comm (G' : Subgraph G) (v w : V) : G'.Adj v w ↔ G'.Adj w v 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v w : V)
Goal: G'.Adj v w ↔ G'.Adj w v
-- SimpleGraph.Subgraph.adj_symm
@[symm]
theorem adj_symm (G' : Subgraph G) {u v : V} (h : G'.Adj u v) : G'.Adj v u 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) {u v : V} (h : G'.Adj u v)
Goal: G'.Adj v u
-- SimpleGraph.Subgraph.Adj.symm
protected theorem Adj.symm {G' : Subgraph G} {u v : V} (h : G'.Adj u v) : G'.Adj v u 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {u v : V} (h : G'.Adj u v)
Goal: G'.Adj v u
-- SimpleGraph.Subgraph.Adj.adj_sub
protected theorem Adj.adj_sub {H : G.Subgraph} {u v : V} (h : H.Adj u v) : G.Adj u v 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} {u v : V} (h : H.Adj u v)
Goal: G.Adj u v
-- SimpleGraph.Subgraph.Adj.fst_mem
protected theorem Adj.fst_mem {H : G.Subgraph} {u v : V} (h : H.Adj u v) : u ∈ H.verts 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} {u v : V} (h : H.Adj u v)
Goal: u ∈ H.verts
-- SimpleGraph.Subgraph.Adj.snd_mem
protected theorem Adj.snd_mem {H : G.Subgraph} {u v : V} (h : H.Adj u v) : v ∈ H.verts 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} {u v : V} (h : H.Adj u v)
Goal: v ∈ H.verts
-- SimpleGraph.Subgraph.Adj.ne
protected theorem Adj.ne {H : G.Subgraph} {u v : V} (h : H.Adj u v) : u ≠ v 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} {u v : V} (h : H.Adj u v)
Goal: u ≠ v
-- SimpleGraph.Subgraph.coe_adj
@[simps]
protected def coe (G' : Subgraph G) : SimpleGraph G'.verts 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v w : ↑G'.verts)
Goal: G'.coe.Adj v w = G'.Adj ↑v ↑w
-- SimpleGraph.Subgraph.coe_adj_sub
@[simp]
theorem coe_adj_sub (G' : Subgraph G) (u v : G'.verts) (h : G'.coe.Adj u v) : G.Adj u v 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (u v : ↑G'.verts) (h : G'.coe.Adj u v)
Goal: G.Adj ↑u ↑v
-- SimpleGraph.Subgraph.Adj.coe
protected theorem Adj.coe {H : G.Subgraph} {u v : V} (h : H.Adj u v) :
    H.coe.Adj ⟨u, H.edge_vert h⟩ ⟨v, H.edge_vert h.symm⟩ 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} {u v : V} (h : H.Adj u v)
Goal: H.coe.Adj ⟨u, ⋯⟩ ⟨v, ⋯⟩
-- SimpleGraph.Subgraph.isSpanning_iff
theorem isSpanning_iff {G' : Subgraph G} : G'.IsSpanning ↔ G'.verts = Set.univ 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G'.IsSpanning ↔ G'.verts = Set.univ
-- SimpleGraph.Subgraph.spanningCoe_adj
@[simps]
protected def spanningCoe (G' : Subgraph G) : SimpleGraph V 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph)
Goal: ∀ (a a_1 : V), G'.spanningCoe.Adj a a_1 = G'.Adj a a_1
-- SimpleGraph.Subgraph.Adj.of_spanningCoe
@[simp]
theorem Adj.of_spanningCoe {G' : Subgraph G} {u v : G'.verts} (h : G'.spanningCoe.Adj u v) :
    G.Adj u v 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {u v : ↑G'.verts} (h : G'.spanningCoe.Adj ↑u ↑v)
Goal: G.Adj ↑u ↑v
-- SimpleGraph.Subgraph.spanningCoe_inj
theorem spanningCoe_inj : G₁.spanningCoe = G₂.spanningCoe ↔ G₁.Adj = G₂.Adj 
Arguments: {V : Type u} {G : SimpleGraph V} {G₁ G₂ : G.Subgraph}
Goal: G₁.spanningCoe = G₂.spanningCoe ↔ G₁.Adj = G₂.Adj
-- SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning_apply_coe
@[simps]
def spanningCoeEquivCoeOfSpanning (G' : Subgraph G) (h : G'.IsSpanning) :
    G'.spanningCoe ≃g G'.coe 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (h : G'.IsSpanning) (v : V)
Goal: ↑((G'.spanningCoeEquivCoeOfSpanning h) v) = v
-- SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning_symm_apply
@[simps]
def spanningCoeEquivCoeOfSpanning (G' : Subgraph G) (h : G'.IsSpanning) :
    G'.spanningCoe ≃g G'.coe 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (h : G'.IsSpanning) (v : ↑G'.verts)
Goal: (RelIso.symm (G'.spanningCoeEquivCoeOfSpanning h)) v = ↑v
-- SimpleGraph.Subgraph.mem_support
theorem mem_support (H : Subgraph G) {v : V} : v ∈ H.support ↔ ∃ w, H.Adj v w 
Arguments: {V : Type u} {G : SimpleGraph V} (H : G.Subgraph) {v : V}
Goal: v ∈ H.support ↔ ∃ w, H.Adj v w
-- SimpleGraph.Subgraph.support_subset_verts
theorem support_subset_verts (H : Subgraph G) : H.support ⊆ H.verts 
Arguments: {V : Type u} {G : SimpleGraph V} (H : G.Subgraph)
Goal: H.support ⊆ H.verts
-- SimpleGraph.Subgraph.neighborSet_subset
theorem neighborSet_subset (G' : Subgraph G) (v : V) : G'.neighborSet v ⊆ G.neighborSet v 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v : V)
Goal: G'.neighborSet v ⊆ G.neighborSet v
-- SimpleGraph.Subgraph.neighborSet_subset_verts
theorem neighborSet_subset_verts (G' : Subgraph G) (v : V) : G'.neighborSet v ⊆ G'.verts 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v : V)
Goal: G'.neighborSet v ⊆ G'.verts
-- SimpleGraph.Subgraph.mem_neighborSet
@[simp]
theorem mem_neighborSet (G' : Subgraph G) (v w : V) : w ∈ G'.neighborSet v ↔ G'.Adj v w 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v w : V)
Goal: w ∈ G'.neighborSet v ↔ G'.Adj v w
-- SimpleGraph.Subgraph.edgeSet_subset
theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSet ⊆ G.edgeSet 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph)
Goal: G'.edgeSet ⊆ G.edgeSet
-- SimpleGraph.Subgraph.mem_edgeSet
@[simp]
theorem mem_edgeSet {G' : Subgraph G} {v w : V} : s(v, w) ∈ G'.edgeSet ↔ G'.Adj v w 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {v w : V}
Goal: s(v, w) ∈ G'.edgeSet ↔ G'.Adj v w
-- SimpleGraph.Subgraph.mem_verts_if_mem_edge
theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSet)
    (hv : v ∈ e) : v ∈ G'.verts 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSet) (hv : v ∈ e)
Goal: v ∈ G'.verts
-- SimpleGraph.Subgraph.incidenceSet_subset_incidenceSet
theorem incidenceSet_subset_incidenceSet (G' : Subgraph G) (v : V) :
    G'.incidenceSet v ⊆ G.incidenceSet v 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v : V)
Goal: G'.incidenceSet v ⊆ G.incidenceSet v
-- SimpleGraph.Subgraph.incidenceSet_subset
theorem incidenceSet_subset (G' : Subgraph G) (v : V) : G'.incidenceSet v ⊆ G'.edgeSet 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (v : V)
Goal: G'.incidenceSet v ⊆ G'.edgeSet
-- SimpleGraph.Subgraph.copy_eq
theorem copy_eq (G' : Subgraph G) (V'' : Set V) (hV : V'' = G'.verts)
    (adj' : V → V → Prop) (hadj : adj' = G'.Adj) : G'.copy V'' hV adj' hadj = G' 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (V'' : Set V) (hV : V'' = G'.verts) (adj' : V → V → Prop) (hadj : adj' = G'.Adj)
Goal: G'.copy V'' hV adj' hadj = G'
-- SimpleGraph.Subgraph.sup_adj
@[simp]
theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b 
Arguments: {V : Type u} {G : SimpleGraph V} {G₁ G₂ : G.Subgraph} {a b : V}
Goal: (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b
-- SimpleGraph.Subgraph.inf_adj
@[simp]
theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b 
Arguments: {V : Type u} {G : SimpleGraph V} {G₁ G₂ : G.Subgraph} {a b : V}
Goal: (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b
-- SimpleGraph.Subgraph.top_adj
@[simp]
theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b 
Arguments: {V : Type u} {G : SimpleGraph V} {a b : V}
Goal: ⊤.Adj a b ↔ G.Adj a b
-- SimpleGraph.Subgraph.not_bot_adj
@[simp]
theorem not_bot_adj : ¬ (⊥ : Subgraph G).Adj a b 
Arguments: {V : Type u} {G : SimpleGraph V} {a b : V}
Goal: ¬⊥.Adj a b
-- SimpleGraph.Subgraph.verts_sup
@[simp]
theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts 
Arguments: {V : Type u} {G : SimpleGraph V} (G₁ G₂ : G.Subgraph)
Goal: (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts
-- SimpleGraph.Subgraph.verts_inf
@[simp]
theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts 
Arguments: {V : Type u} {G : SimpleGraph V} (G₁ G₂ : G.Subgraph)
Goal: (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts
-- SimpleGraph.Subgraph.verts_top
@[simp]
theorem verts_top : (⊤ : G.Subgraph).verts = Set.univ 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: ⊤.verts = Set.univ
-- SimpleGraph.Subgraph.verts_bot
@[simp]
theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: ⊥.verts = ∅
-- SimpleGraph.Subgraph.sSup_adj
@[simp]
theorem sSup_adj {s : Set G.Subgraph} : (sSup s).Adj a b ↔ ∃ G ∈ s, Adj G a b 
Arguments: {V : Type u} {G : SimpleGraph V} {a b : V} {s : Set G.Subgraph}
Goal: (sSup s).Adj a b ↔ ∃ G_1 ∈ s, G_1.Adj a b