ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddCommGroup.DirectLimit.lift_injective
lemma lift_injective [IsDirected ι (· ≤ ·)]
    (injective : ∀ i, Function.Injective <| g i) :
    Function.Injective (lift G f P g Hg) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} (P : Type u₁) [AddCommGroup P] (g : (i : ι) → G i →+ P) (Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) ((f i j hij) x) = (g i) x) [IsDirected ι fun x x_1 => x ≤ x_1] (injective : ∀ (i : ι), Function.Injective ⇑(g i))
Goal: Function.Injective ⇑(AddCommGroup.DirectLimit.lift G f P g Hg)
-- AddCommGroup.DirectLimit.map_apply_of
@[simp] lemma map_apply_of (g : (i : ι) → G i →+ G' i)
    (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i))
    {i : ι} (x : G i) :
    map g hg (of G f _ x) = of G' f' i (g i x) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} {G' : ι → Type v'} [(i : ι) → AddCommGroup (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+ G' j} (g : (i : ι) → G i →+ G' i) (hg : ∀ (i j : ι) (h : i ≤ j), (g j).comp (f i j h) = (f' i j h).comp (g i)) {i : ι} (x : G i)
Goal: (AddCommGroup.DirectLimit.map g hg) ((AddCommGroup.DirectLimit.of G f i) x) =
  (AddCommGroup.DirectLimit.of G' f' i) ((g i) x)
-- AddCommGroup.DirectLimit.map_id
@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
    map (fun i ↦ AddMonoidHom.id _) (fun _ _ _ ↦ rfl) = AddMonoidHom.id (DirectLimit G f) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} [IsDirected ι fun x x_1 => x ≤ x_1]
Goal: AddCommGroup.DirectLimit.map (fun i => AddMonoidHom.id (G i)) ⋯ = AddMonoidHom.id (AddCommGroup.DirectLimit G f)
-- AddCommGroup.DirectLimit.map_comp
lemma map_comp [IsDirected ι (· ≤ ·)]
    (g₁ : (i : ι) → G i →+ G' i) (g₂ : (i : ι) → G' i →+ G'' i)
    (hg₁ : ∀ i j h, (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i))
    (hg₂ : ∀ i j h, (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i)) :
    ((map g₂ hg₂).comp (map g₁ hg₁) :
      DirectLimit G f →+ DirectLimit G'' f'') =
    (map (fun i ↦ (g₂ i).comp (g₁ i)) fun i j h ↦ by
      rw [AddMonoidHom.comp_assoc, hg₁ i, ← AddMonoidHom.comp_assoc, hg₂ i,
        AddMonoidHom.comp_assoc] :
      DirectLimit G f →+ DirectLimit G'' f'') 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} {G' : ι → Type v'} [(i : ι) → AddCommGroup (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+ G' j} {G'' : ι → Type v''} [(i : ι) → AddCommGroup (G'' i)] {f'' : (i j : ι) → i ≤ j → G'' i →+ G'' j} [IsDirected ι fun x x_1 => x ≤ x_1] (g₁ : (i : ι) → G i →+ G' i) (g₂ : (i : ι) → G' i →+ G'' i) (hg₁ : ∀ (i j : ι) (h : i ≤ j), (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i)) (hg₂ : ∀ (i j : ι) (h : i ≤ j), (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i))
Goal: (AddCommGroup.DirectLimit.map g₂ hg₂).comp (AddCommGroup.DirectLimit.map g₁ hg₁) =
  AddCommGroup.DirectLimit.map (fun i => (g₂ i).comp (g₁ i)) ⋯
-- AddCommGroup.DirectLimit.congr_apply_of
lemma congr_apply_of [IsDirected ι (· ≤ ·)]
    (e : (i : ι) → G i ≃+ G' i)
    (he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i))
    {i : ι} (g : G i) :
    congr e he (of G f i g) = of G' f' i (e i g) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} {G' : ι → Type v'} [(i : ι) → AddCommGroup (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+ G' j} [IsDirected ι fun x x_1 => x ≤ x_1] (e : (i : ι) → G i ≃+ G' i) (he : ∀ (i j : ι) (h : i ≤ j), (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp ↑(e i)) {i : ι} (g : G i)
Goal: (AddCommGroup.DirectLimit.congr e he) ((AddCommGroup.DirectLimit.of G f i) g) =
  (AddCommGroup.DirectLimit.of G' f' i) ((e i) g)
-- AddCommGroup.DirectLimit.congr_symm_apply_of
lemma congr_symm_apply_of [IsDirected ι (· ≤ ·)]
    (e : (i : ι) → G i ≃+ G' i)
    (he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i))
    {i : ι} (g : G' i) :
    (congr e he).symm (of G' f' i g) = of G f i ((e i).symm g) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [DecidableEq ι] [(i : ι) → AddCommGroup (G i)] {f : (i j : ι) → i ≤ j → G i →+ G j} {G' : ι → Type v'} [(i : ι) → AddCommGroup (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+ G' j} [IsDirected ι fun x x_1 => x ≤ x_1] (e : (i : ι) → G i ≃+ G' i) (he : ∀ (i j : ι) (h : i ≤ j), (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp ↑(e i)) {i : ι} (g : G' i)
Goal: (AddCommGroup.DirectLimit.congr e he).symm ((AddCommGroup.DirectLimit.of G' f' i) g) =
  (AddCommGroup.DirectLimit.of G f i) ((e i).symm g)
-- Ring.DirectLimit.of_f
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} {i j : ι} (hij : i ≤ j) (x : G i)
Goal: (Ring.DirectLimit.of G f j) (f i j hij x) = (Ring.DirectLimit.of G f i) x
-- Ring.DirectLimit.exists_of
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
    ∃ i x, of G f i x = z 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (z : Ring.DirectLimit G f)
Goal: ∃ i x, (Ring.DirectLimit.of G f i) x = z
-- Ring.DirectLimit.Polynomial.exists_of
nonrec theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
    (q : Polynomial (DirectLimit G fun i j h => f' i j h)) :
    ∃ i p, Polynomial.map (of G (fun i j h => f' i j h) i) p = q 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f' : (i j : ι) → i ≤ j → G i →+* G j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (q : Polynomial (Ring.DirectLimit G fun i j h => ⇑(f' i j h)))
Goal: ∃ i p, Polynomial.map (Ring.DirectLimit.of G (fun i j h => ⇑(f' i j h)) i) p = q
-- Ring.DirectLimit.induction_on
@[elab_as_elim]
theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
    (z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] {C : Ring.DirectLimit G f → Prop} (z : Ring.DirectLimit G f) (ih : ∀ (i : ι) (x : G i), C ((Ring.DirectLimit.of G f i) x))
Goal: C z
-- Ring.DirectLimit.of.zero_exact_aux2
theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} [DecidablePred (· ∈ s)]
    [DecidablePred (· ∈ t)] (hxs : IsSupported x s) {j k} (hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j)
    (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k) (hst : s ⊆ t) :
    f' j k hjk (lift (fun ix : s => f' ix.1.1 j (hj ix ix.2) ix.1.2) (restriction s x)) =
      lift (fun ix : t => f' ix.1.1 k (hk ix ix.2) ix.1.2) (restriction t x) 
Arguments: {ι : Type v} [Preorder ι] (G : ι → Type w) [(i : ι) → CommRing (G i)] (f' : (i j : ι) → i ≤ j → G i →+* G j) [DirectedSystem G fun i j h => ⇑(f' i j h)] {x : FreeCommRing ((i : ι) × G i)} {s t : Set ((i : ι) × G i)} [DecidablePred fun x => x ∈ s] [DecidablePred fun x => x ∈ t] (hxs : x.IsSupported s) {j k : ι} (hj : ∀ z ∈ s, z.fst ≤ j) (hk : ∀ z ∈ t, z.fst ≤ k) (hjk : j ≤ k) (hst : s ⊆ t)
Goal: (f' j k hjk) ((FreeCommRing.lift fun ix => (f' (↑ix).fst j ⋯) (↑ix).snd) ((FreeCommRing.restriction s) x)) =
  (FreeCommRing.lift fun ix => (f' (↑ix).fst k ⋯) (↑ix).snd) ((FreeCommRing.restriction t) x)
-- Ring.DirectLimit.of.zero_exact_aux
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
    (H : (Ideal.Quotient.mk _ x : DirectLimit G fun i j h => f' i j h)
        = (0 : DirectLimit G fun i j h => f' i j h)) :
    ∃ j s, ∃ H : ∀ k : Σ i, G i, k ∈ s → k.1 ≤ j,
        IsSupported x s ∧
          ∀ [DecidablePred (· ∈ s)],
            lift (fun ix : s => f' ix.1.1 j (H ix ix.2) ix.1.2) (restriction s x) = (0 : G j) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f' : (i j : ι) → i ≤ j → G i →+* G j} [DirectedSystem G fun i j h => ⇑(f' i j h)] [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] {x : FreeCommRing ((i : ι) × G i)} (H :
  (Ideal.Quotient.mk
        (Ideal.span
          {a |
            (∃ i j,
                ∃ (H : i ≤ j),
                  ∃ x, FreeCommRing.of ⟨j, (fun i j h => ⇑(f' i j h)) i j H x⟩ - FreeCommRing.of ⟨i, x⟩ = a) ∨
              (∃ i, FreeCommRing.of ⟨i, 1⟩ - 1 = a) ∨
                (∃ i x y, FreeCommRing.of ⟨i, x + y⟩ - (FreeCommRing.of ⟨i, x⟩ + FreeCommRing.of ⟨i, y⟩) = a) ∨
                  ∃ i x y, FreeCommRing.of ⟨i, x * y⟩ - FreeCommRing.of ⟨i, x⟩ * FreeCommRing.of ⟨i, y⟩ = a}))
      x =
    0)
Goal: ∃ j s,
  ∃ (H : ∀ k ∈ s, k.fst ≤ j),
    x.IsSupported s ∧
      ∀ [inst : DecidablePred fun x => x ∈ s],
        (FreeCommRing.lift fun ix => (f' (↑ix).fst j ⋯) (↑ix).snd) ((FreeCommRing.restriction s) x) = 0
-- Ring.DirectLimit.of.zero_exact
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
    ∃ (j : _) (hij : i ≤ j), f' i j hij x = 0 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f' : (i j : ι) → i ≤ j → G i →+* G j} [DirectedSystem G fun i j h => ⇑(f' i j h)] [IsDirected ι fun x x_1 => x ≤ x_1] {i : ι} {x : G i} (hix : (Ring.DirectLimit.of G (fun i j h => ⇑(f' i j h)) i) x = 0)
Goal: ∃ j, ∃ (hij : i ≤ j), (f' i j hij) x = 0
-- Ring.DirectLimit.of_injective
theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f' i j h]
    (hf : ∀ i j hij, Function.Injective (f' i j hij)) (i) :
    Function.Injective (of G (fun i j h => f' i j h) i) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] (f' : (i j : ι) → i ≤ j → G i →+* G j) [IsDirected ι fun x x_1 => x ≤ x_1] [DirectedSystem G fun i j h => ⇑(f' i j h)] (hf : ∀ (i j : ι) (hij : i ≤ j), Function.Injective ⇑(f' i j hij)) (i : ι)
Goal: Function.Injective ⇑(Ring.DirectLimit.of G (fun i j h => ⇑(f' i j h)) i)
-- Ring.DirectLimit.lift_of
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} (P : Type u₁) [CommRing P] (g : (i : ι) → G i →+* P) (Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) (f i j hij x) = (g i) x) (i : ι) (x : G i)
Goal: (Ring.DirectLimit.lift G f P g Hg) ((Ring.DirectLimit.of G f i) x) = (g i) x
-- Ring.DirectLimit.lift_unique
theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
    F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp [of_f]) x 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} (P : Type u₁) [CommRing P] [IsDirected ι fun x x_1 => x ≤ x_1] (F : Ring.DirectLimit G f →+* P) (x : Ring.DirectLimit G f)
Goal: F x = (Ring.DirectLimit.lift G f P (fun i => F.comp (Ring.DirectLimit.of G f i)) ⋯) x
-- Ring.DirectLimit.lift_injective
lemma lift_injective [Nonempty ι] [IsDirected ι (· ≤ ·)]
    (injective : ∀ i, Function.Injective <| g i) :
    Function.Injective (lift G f P g Hg) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i → G j} (P : Type u₁) [CommRing P] (g : (i : ι) → G i →+* P) (Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) (f i j hij x) = (g i) x) [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (injective : ∀ (i : ι), Function.Injective ⇑(g i))
Goal: Function.Injective ⇑(Ring.DirectLimit.lift G f P g Hg)
-- Ring.DirectLimit.map_apply_of
@[simp] lemma map_apply_of (g : (i : ι) → G i →+* G' i)
    (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i))
    {i : ι} (x : G i) :
    map g hg (of G _ _ x) = of G' (fun _ _ h ↦ f' _ _ h) i (g i x) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i →+* G j} {G' : ι → Type v'} [(i : ι) → CommRing (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+* G' j} (g : (i : ι) → G i →+* G' i) (hg : ∀ (i j : ι) (h : i ≤ j), (g j).comp (f i j h) = (f' i j h).comp (g i)) {i : ι} (x : G i)
Goal: (Ring.DirectLimit.map g hg) ((Ring.DirectLimit.of G (fun x x_1 h => ⇑(f x x_1 h)) i) x) =
  (Ring.DirectLimit.of G' (fun x x_1 h => ⇑(f' x x_1 h)) i) ((g i) x)
-- Ring.DirectLimit.map_id
@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
    map (fun i ↦ RingHom.id _) (fun _ _ _ ↦ rfl) =
    RingHom.id (DirectLimit G fun _ _ h ↦ f _ _ h) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i →+* G j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1]
Goal: Ring.DirectLimit.map (fun i => RingHom.id (G i)) ⋯ = RingHom.id (Ring.DirectLimit G fun x x_1 h => ⇑(f x x_1 h))
-- Ring.DirectLimit.map_comp
lemma map_comp [IsDirected ι (· ≤ ·)]
    (g₁ : (i : ι) → G i →+* G' i) (g₂ : (i : ι) → G' i →+* G'' i)
    (hg₁ : ∀ i j h, (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i))
    (hg₂ : ∀ i j h, (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i)) :
    ((map g₂ hg₂).comp (map g₁ hg₁) :
      DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G'' fun _ _ h ↦ f'' _ _ h) =
    (map (fun i ↦ (g₂ i).comp (g₁ i)) fun i j h ↦ by
      rw [RingHom.comp_assoc, hg₁ i, ← RingHom.comp_assoc, hg₂ i, RingHom.comp_assoc] :
      DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G'' fun _ _ h ↦ f'' _ _ h) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i →+* G j} {G' : ι → Type v'} [(i : ι) → CommRing (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+* G' j} {G'' : ι → Type v''} [(i : ι) → CommRing (G'' i)] {f'' : (i j : ι) → i ≤ j → G'' i →+* G'' j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (g₁ : (i : ι) → G i →+* G' i) (g₂ : (i : ι) → G' i →+* G'' i) (hg₁ : ∀ (i j : ι) (h : i ≤ j), (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i)) (hg₂ : ∀ (i j : ι) (h : i ≤ j), (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i))
Goal: (Ring.DirectLimit.map g₂ hg₂).comp (Ring.DirectLimit.map g₁ hg₁) = Ring.DirectLimit.map (fun i => (g₂ i).comp (g₁ i)) ⋯
-- Ring.DirectLimit.congr_apply_of
lemma congr_apply_of [IsDirected ι (· ≤ ·)]
    (e : (i : ι) → G i ≃+* G' i)
    (he : ∀ i j h, (e j).toRingHom.comp (f i j h) = (f' i j h).comp (e i))
    {i : ι} (g : G i) :
    congr e he (of G _ i g) = of G' (fun _ _ h ↦ f' _ _ h) i (e i g) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i →+* G j} {G' : ι → Type v'} [(i : ι) → CommRing (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+* G' j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (e : (i : ι) → G i ≃+* G' i) (he : ∀ (i j : ι) (h : i ≤ j), (e j).toRingHom.comp (f i j h) = (f' i j h).comp ↑(e i)) {i : ι} (g : G i)
Goal: (Ring.DirectLimit.congr e he) ((Ring.DirectLimit.of G (fun x x_1 h => ⇑(f x x_1 h)) i) g) =
  (Ring.DirectLimit.of G' (fun x x_1 h => ⇑(f' x x_1 h)) i) ((e i) g)
-- Ring.DirectLimit.congr_symm_apply_of
lemma congr_symm_apply_of [IsDirected ι (· ≤ ·)]
    (e : (i : ι) → G i ≃+* G' i)
    (he : ∀ i j h, (e j).toRingHom.comp (f i j h) = (f' i j h).comp (e i))
    {i : ι} (g : G' i) :
    (congr e he).symm (of G' _ i g) = of G (fun _ _ h ↦ f _ _ h) i ((e i).symm g) 
Arguments: {ι : Type v} [Preorder ι] {G : ι → Type w} [(i : ι) → CommRing (G i)] {f : (i j : ι) → i ≤ j → G i →+* G j} {G' : ι → Type v'} [(i : ι) → CommRing (G' i)] {f' : (i j : ι) → i ≤ j → G' i →+* G' j} [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] (e : (i : ι) → G i ≃+* G' i) (he : ∀ (i j : ι) (h : i ≤ j), (e j).toRingHom.comp (f i j h) = (f' i j h).comp ↑(e i)) {i : ι} (g : G' i)
Goal: (Ring.DirectLimit.congr e he).symm ((Ring.DirectLimit.of G' (fun x x_1 h => ⇑(f' x x_1 h)) i) g) =
  (Ring.DirectLimit.of G (fun x x_1 h => ⇑(f x x_1 h)) i) ((e i).symm g)
-- Field.DirectLimit.exists_inv
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 
Arguments: {ι : Type v} [Preorder ι] (G : ι → Type w) [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] [(i : ι) → Field (G i)] (f : (i j : ι) → i ≤ j → G i → G j) {p : Ring.DirectLimit G f}
Goal: p ≠ 0 → ∃ y, p * y = 1
-- Field.DirectLimit.mul_inv_cancel
protected theorem mul_inv_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : p * inv G f p = 1 
Arguments: {ι : Type v} [Preorder ι] (G : ι → Type w) [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] [(i : ι) → Field (G i)] (f : (i j : ι) → i ≤ j → G i → G j) {p : Ring.DirectLimit G f} (hp : p ≠ 0)
Goal: p * Field.DirectLimit.inv G f p = 1
-- Field.DirectLimit.inv_mul_cancel
protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv G f p * p = 1 
Arguments: {ι : Type v} [Preorder ι] (G : ι → Type w) [Nonempty ι] [IsDirected ι fun x x_1 => x ≤ x_1] [(i : ι) → Field (G i)] (f : (i j : ι) → i ≤ j → G i → G j) {p : Ring.DirectLimit G f} (hp : p ≠ 0)
Goal: Field.DirectLimit.inv G f p * p = 1
-- star_natCast_smul
@[simp]
theorem star_natCast_smul [Semiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M] (n : ℕ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
Arguments: {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M] (n : ℕ) (x : M)
Goal: star (↑n • x) = ↑n • star x
-- star_intCast_smul
@[simp]
theorem star_intCast_smul [Ring R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℤ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℤ) (x : M)
Goal: star (↑n • x) = ↑n • star x
-- star_inv_natCast_smul
@[simp]
theorem star_inv_natCast_smul [DivisionSemiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M]
    (n : ℕ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x 
Arguments: {R : Type u_1} {M : Type u_2} [DivisionSemiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M] (n : ℕ) (x : M)
Goal: star ((↑n)⁻¹ • x) = (↑n)⁻¹ • star x
-- star_inv_intCast_smul
@[simp]
theorem star_inv_intCast_smul [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M]
    (n : ℤ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x 
Arguments: {R : Type u_1} {M : Type u_2} [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℤ) (x : M)
Goal: star ((↑n)⁻¹ • x) = (↑n)⁻¹ • star x
-- star_ratCast_smul
@[simp]
theorem star_ratCast_smul [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℚ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
Arguments: {R : Type u_1} {M : Type u_2} [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℚ) (x : M)
Goal: star (↑n • x) = ↑n • star x
-- star_rat_smul
@[simp]
theorem star_rat_smul {R : Type*} [AddCommGroup R] [StarAddMonoid R] [Module ℚ R] (x : R) (n : ℚ) :
    star (n • x) = n • star x 
Arguments: {R : Type u_3} [AddCommGroup R] [StarAddMonoid R] [Module ℚ R] (x : R) (n : ℚ)
Goal: star (n • x) = n • star x
-- starLinearEquiv_symm_apply
@[simps]
def starLinearEquiv (R : Type*) {A : Type*} [CommSemiring R] [StarRing R] [AddCommMonoid A]
    [StarAddMonoid A] [Module R A] [StarModule R A] : A ≃ₗ⋆[R] A 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [StarRing R] [AddCommMonoid A] [StarAddMonoid A] [Module R A] [StarModule R A]
Goal: ∀ (a : A), (starLinearEquiv R).symm a = starAddEquiv.invFun a
-- starLinearEquiv_apply
@[simps]
def starLinearEquiv (R : Type*) {A : Type*} [CommSemiring R] [StarRing R] [AddCommMonoid A]
    [StarAddMonoid A] [Module R A] [StarModule R A] : A ≃ₗ⋆[R] A 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [StarRing R] [AddCommMonoid A] [StarAddMonoid A] [Module R A] [StarModule R A]
Goal: ∀ (a : A), (starLinearEquiv R) a = star a
-- selfAdjointPart_apply_coe
@[simps]
def selfAdjointPart : A →ₗ[R] selfAdjoint A 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] (x : A)
Goal: ↑((selfAdjointPart R) x) = ⅟2 • (x + star x)
-- skewAdjointPart_apply_coe
@[simps]
def skewAdjointPart : A →ₗ[R] skewAdjoint A 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] (x : A)
Goal: ↑((skewAdjointPart R) x) = ⅟2 • (x - star x)
-- StarModule.selfAdjointPart_add_skewAdjointPart
theorem StarModule.selfAdjointPart_add_skewAdjointPart (x : A) :
    (selfAdjointPart R x : A) + skewAdjointPart R x = x 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] (x : A)
Goal: ↑((selfAdjointPart R) x) + ↑((skewAdjointPart R) x) = x
-- IsSelfAdjoint.coe_selfAdjointPart_apply
theorem IsSelfAdjoint.coe_selfAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    (selfAdjointPart R x : A) = x 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] {x : A} (hx : IsSelfAdjoint x)
Goal: ↑((selfAdjointPart R) x) = x
-- IsSelfAdjoint.selfAdjointPart_apply
theorem IsSelfAdjoint.selfAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    selfAdjointPart R x = ⟨x, hx⟩ 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] {x : A} (hx : IsSelfAdjoint x)
Goal: (selfAdjointPart R) x = ⟨x, hx⟩
-- selfAdjointPart_comp_subtype_selfAdjoint
theorem selfAdjointPart_comp_subtype_selfAdjoint :
    (selfAdjointPart R).comp (selfAdjoint.submodule R A).subtype = .id 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2]
Goal: selfAdjointPart R ∘ₗ (selfAdjoint.submodule R A).subtype = LinearMap.id
-- IsSelfAdjoint.skewAdjointPart_apply
theorem IsSelfAdjoint.skewAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    skewAdjointPart R x = 0 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] {x : A} (hx : IsSelfAdjoint x)
Goal: (skewAdjointPart R) x = 0
-- skewAdjointPart_comp_subtype_selfAdjoint
theorem skewAdjointPart_comp_subtype_selfAdjoint :
    (skewAdjointPart R).comp (selfAdjoint.submodule R A).subtype = 0 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2]
Goal: skewAdjointPart R ∘ₗ (selfAdjoint.submodule R A).subtype = 0
-- selfAdjointPart_comp_subtype_skewAdjoint
theorem selfAdjointPart_comp_subtype_skewAdjoint :
    (selfAdjointPart R).comp (skewAdjoint.submodule R A).subtype = 0 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2]
Goal: selfAdjointPart R ∘ₗ (skewAdjoint.submodule R A).subtype = 0
-- skewAdjointPart_comp_subtype_skewAdjoint
theorem skewAdjointPart_comp_subtype_skewAdjoint :
    (skewAdjointPart R).comp (skewAdjoint.submodule R A).subtype = .id 
Arguments: (R : Type u_1) {A : Type u_2} [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2]
Goal: skewAdjointPart R ∘ₗ (skewAdjoint.submodule R A).subtype = LinearMap.id
-- StarModule.decomposeProdAdjoint_apply
-- Porting note: This attribute causes a `timeout at 'whnf'`.
@[simps!]
def StarModule.decomposeProdAdjoint : A ≃ₗ[R] selfAdjoint A × skewAdjoint A 
Arguments: (R : Type u_1) (A : Type u_2) [Semiring R] [StarMul R] [TrivialStar R] [AddCommGroup A] [Module R A] [StarAddMonoid A] [StarModule R A] [Invertible 2] (i : A)
Goal: (StarModule.decomposeProdAdjoint R A) i = ((selfAdjointPart R) i, (skewAdjointPart R) i)