Theorems / novel_cat_03

Authored

Category theory · medium

Statement, exactly as the model and Lean see it
open CategoryTheory in
theorem lg_target {C : Type*} [Category C] {X Y Z : C} (f : X ⟶ Y) [Mono f] (g h : Z ⟶ X) (w : g ≫ f = h ≫ f) : g = h := by
Source
Written for LeanGraph, reference proof certified
Premises used by the reference proof
1

Traces

Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.

Verified0 model calls · 16 Lean checks · $0.00000

Attempts

  1. attempt 1Wrong tactic
    Proof
    rfl
    What Lean printed (this is all the model sees on repair)
    5:2: error: Tactic `rfl` failed: The left-hand side
      g
    is not definitionally equal to the right-hand side
      h
    
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ g = h
  2. attempt 2Other
    Proof
    decide
    What Lean printed (this is all the model sees on repair)
    5:2: error: Expected type must not contain free variables
      g = h
    
    Hint: Use the `+revert` option to automatically clean up and revert free variables
  3. attempt 3Valid but mathematically wrong
    Proof
    norm_num
    What Lean printed (this is all the model sees on repair)
    4:121: error: unsolved goals
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ g = h
  4. attempt 4Wrong tactic
    Proof
    simp
    What Lean printed (this is all the model sees on repair)
    5:2: error: `simp` made no progress
  5. attempt 5Wrong tactic
    Proof
    ring
    What Lean printed (this is all the model sees on repair)
    5:2: error: `ring_nf` made no progress on the goal
  6. attempt 6Wrong tactic
    Proof
    linarith
    What Lean printed (this is all the model sees on repair)
    5:2: error: linarith failed to find a contradiction
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ False
    failed
  7. attempt 7Wrong tactic
    Proof
    nlinarith
    What Lean printed (this is all the model sees on repair)
    5:2: error: linarith failed to find a contradiction
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ False
    failed
  8. attempt 8Wrong tactic
    Proof
    positivity
    What Lean printed (this is all the model sees on repair)
    5:2: error: not a positivity goal
  9. attempt 9Wrong tactic
    Proof
    omega
    What Lean printed (this is all the model sees on repair)
    5:2: error: omega could not prove the goal:
    No usable constraints found. You may need to unfold definitions so `omega` can see linear arithmetic facts about `Nat` and `Int`, which may also involve multiplication, division, and modular remainder by constants.
  10. attempt 10Wrong tactic
    Proof
    field_simp
    What Lean printed (this is all the model sees on repair)
    5:2: error: `field_simp` made no progress on the goal
  11. attempt 11Wrong tactic
    Proof
    tauto
    What Lean printed (this is all the model sees on repair)
    5:2: error: Tactic `tauto` failed
    
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ g = h
  12. attempt 12Wrong tactic
    Proof
    simp_all
    What Lean printed (this is all the model sees on repair)
    5:2: error: simp_all made no progress
  13. attempt 13Wrong tactic
    Proof
    aesop
    What Lean printed (this is all the model sees on repair)
    5:2: error: Tactic `aesop` failed, made no progress
    Initial goal:
      C : Type u_1
      inst✝¹ : Category.{u_2, u_1} C
      X Y Z : C
      f : X ⟶ Y
      inst✝ : Mono f
      g h : Z ⟶ X
      w : g ≫ f = h ≫ f
      ⊢ g = h
  14. attempt 14Other
    Proof
    grind
    What Lean printed (this is all the model sees on repair)
    5:2: error: `grind` failed
    case grind
    C : Type u_1
    inst : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst_1 : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    h_1 : ¬g = h
    ⊢ False
    [grind] Goal diagnostics
      [facts] Asserted facts
        [prop] Mono f
        [prop] g ≫ f = h ≫ f
        [prop] ¬g = h
      [eqc] True propositions
        [prop] Mono f
      [eqc] False propositions
        [prop] g = h
      [eqc] Equivalence classes
        [eqc] {g ≫ f, h ≫ f}
      [ematch] E-matching patterns
        [thm] Category.assoc: [@CategoryStruct.comp #8 _ #6 #5 #3 #2 (@CategoryStruct.comp _ _ #5 #4 #3 #1 #0)]
        [thm] Category.assoc: [@CategoryStruct
  15. attempt 15Wrong tactic
    Proof
    norm_num <;> linarith
    What Lean printed (this is all the model sees on repair)
    5:15: error: linarith failed to find a contradiction
    C : Type u_1
    inst✝¹ : Category.{u_2, u_1} C
    X Y Z : C
    f : X ⟶ Y
    inst✝ : Mono f
    g h : Z ⟶ X
    w : g ≫ f = h ≫ f
    ⊢ False
    failed
  16. attempt 16Verified
    Proof
    exact?

Verified proof

open CategoryTheory in
theorem lg_target {C : Type*} [Category C] {X Y Z : C} (f : X ⟶ Y) [Mono f] (g h : Z ⟶ X) (w : g ≫ f = h ≫ f) : g = h := by
  exact?

Axioms used: none

Reference proof

The proof we wrote and certified before any model ran.

exact (cancel_mono f).mp w