diff --git a/samples/expansions_6.json b/samples/expansions_6.json index 6c8347b..7df9fd3 100644 --- a/samples/expansions_6.json +++ b/samples/expansions_6.json @@ -1 +1,14960 @@ -[{"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}]], "effects": [{"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}, {"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}], "env_durations": [0, 0], "expander_duration": 1, "generation_duration": 1, "log_critic": -0.5, "priors": [0.500134289264679, 0.4998657703399658], "tactics": [{"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "thm": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}]], "effects": [{"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}, {"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}, {"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}, {"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}, {"children": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)\nsimp at h\u2081 h\u2082 h\u2083 h\u2084"}], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}}], "env_durations": [0, 0, 0, 0, 0], "expander_duration": 1, "generation_duration": 1, "log_critic": -0.5, "priors": [0.20181716978549957, 0.20181716978549957, 0.20181716978549957, 0.20181716978549957, 0.19273139536380768], "tactics": [{"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083 h\u2084"}], "thm": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}}, {"children_for_tactic": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "effects": [{"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 2, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all"}}, {"children": [], "goal": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}, "tac": {"duration": 0, "is_valid": true, "unique_string": "simp_all [h\u2081, h\u2082, h\u2083]"}}], "env_durations": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "expander_duration": 1, "generation_duration": 1, "log_critic": -0.5, "priors": [0.016283227130770683, 0.016283227130770683, 0.014078863896429539, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.014078863896429539, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.014078863896429539, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.014078863896429539, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.014078863896429539, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.016283227130770683, 0.014864221215248108, 0.014864221215248108, 0.014049867168068886, 0.014864221215248108, 0.013513033278286457, 0.014143623411655426, 0.014143623411655426, 0.016359707340598106, 0.014143623411655426, 0.014143623411655426, 0.016359707340598106, 0.0028445173520594835], "tactics": [{"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 2, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [mul_assoc]"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all [h\u2081, h\u2082, h\u2083]"}], "thm": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}}] \ No newline at end of file +[ + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ] + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + } + ], + "env_durations": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expander_duration": 1, + "generation_duration": 1, + "log_critic": -0.5, + "priors": [ + 0.016951587051153183, + 0.003913207910954952, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.003913207910954952, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.003913207910954952, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.016951587051153183, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.003910679370164871, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627, + 0.017056837677955627 + ], + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "thm": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS b (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ] + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nsimp at h\u2081 h\u2082 h\u2083" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS b (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS b (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + } + ], + "env_durations": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expander_duration": 1, + "generation_duration": 1, + "log_critic": -0.5, + "priors": [ + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.006822064518928528, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.006822064518928528, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.015958957374095917, + 0.008947557769715786, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733, + 0.016314594075083733 + ], + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082 h\u2083" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS b (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2084 := hS a (a * b)" + } + ], + "thm": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + } +] \ No newline at end of file diff --git a/samples/search_6.json b/samples/search_6.json index e8ceb61..0ec47e0 100644 --- a/samples/search_6.json +++ b/samples/search_6.json @@ -1 +1,55959 @@ -{"ancestors": {"theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n": [["", 0]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 58]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS (b * a) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 14]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 34]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 23]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 32]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 20]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 45]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a (b * a)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 33]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 31]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 33]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 36]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 4]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 21]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 6]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 30]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 8]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 1]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 17]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 15]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 26]]}, "backedup_hashes": [], "currently_expanding": ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"], "done": false, "expansion_count": 6, "initial_minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "nodes": [{"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 1, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)"}]], "counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.004972024820744991, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.004972024820744991, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.004972024820744991, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016815531998872757, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.016750147566199303, 0.0051857042126357555, 0.016750147566199303, 0.0051857042126357555], "q_value_solved": 2, "reset_mask": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 1, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (b * a)"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082"}]], "counts": [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.0, 0.0, -0.5100503358535015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.5100503358535015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.5100503358535015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.021936703473329544, 0.012095306999981403, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.012095306999981403, 0.009215653873980045, 0.012095306999981403, 0.009215653873980045, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.00628496753051877, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.012095306999981403, 0.021936703473329544, 0.006182337645441294, 0.021936703473329544, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.012095306999981403, 0.021936703473329544, 0.006182337645441294, 0.021936703473329544, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.009215653873980045, 0.006182337645441294, 0.009215653873980045, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.021936703473329544, 0.001661234418861568, 0.021936703473329544, 0.009215653873980045], "q_value_solved": 2, "reset_mask": [true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp_all"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}]], "counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.01176612637937069, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.0162389874458313, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.01022252906113863, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152, 0.017686504870653152], "q_value_solved": 2, "reset_mask": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc, hS] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc, hS] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a (b * a)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a (b * a)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a (b * a)"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}]], "counts": [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.17808430288289956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.5100503358535015, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5818729646638117], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.012238780036568642, 0.032748132944107056, 0.006487091071903706, 0.006487091071903706, 0.012238780036568642, 0.009439048357307911, 0.012238780036568642, 0.032748132944107056, 0.032748132944107056, 0.012238780036568642, 0.012238780036568642, 0.032748132944107056, 0.012238780036568642, 0.006487091071903706, 0.032748132944107056, 0.005152852740138769, 0.006487091071903706, 0.0029518017545342445, 0.0029518017545342445, 0.009439048357307911, 0.006487091071903706, 0.032748132944107056, 0.012238780036568642, 0.012238780036568642, 0.032748132944107056, 0.032748132944107056, 0.005374175496399403, 0.009439048357307911, 0.012238780036568642, 0.032748132944107056, 0.012238780036568642, 0.009439048357307911, 0.032748132944107056, 0.007032915484160185, 0.032748132944107056, 0.006487091071903706, 0.012238780036568642, 0.032748132944107056, 0.006487091071903706, 0.032748132944107056, 0.032748132944107056, 0.012238780036568642, 0.032748132944107056, 0.005152852740138769, 0.012238780036568642, 0.009439048357307911, 0.006487091071903706, 0.032748132944107056, 0.005374175496399403, 0.0017836829647421837, 0.009439048357307911, 0.015223423950374126, 0.005194298457354307, 0.029675282537937164, 0.00806900579482317, 0.015223423950374126, 0.005194298457354307, 0.00806900579482317, 0.00806900579482317, 0.005248348228633404, 0.007139053661376238, 0.03275763988494873, 0.03275763988494873], "q_value_solved": 2, "reset_mask": [false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc, hS] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc, hS] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a (b * a)"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "simp [mul_assoc] at h\u2081"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS (b * a) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS (b * a) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS (b * a) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2080 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS (b * a) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a"}]], "counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5818729646638117, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5752064977674498, 0.5785452864279539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.02036827616393566, 0.026772281154990196, 0.007956409826874733, 0.02036827616393566, 0.006259147077798843, 0.0034101686906069517, 0.026772281154990196, 0.026772281154990196, 0.026772281154990196, 0.026772281154990196, 0.026772281154990196, 0.005127636715769768, 0.026772281154990196, 0.007956409826874733, 0.005285073071718216, 0.026772281154990196, 0.003900812938809395, 0.006259147077798843, 0.026772281154990196, 0.026772281154990196, 0.0017329978290945292, 0.02036827616393566, 0.026772281154990196, 0.0005286020459607244, 0.02036827616393566, 0.007956409826874733, 0.02036827616393566, 0.002425362356007099, 0.004542048089206219, 0.026772281154990196, 0.026772281154990196, 0.00978186447173357, 0.004634645767509937, 0.02036827616393566, 0.002425362356007099, 0.026772281154990196, 0.026772281154990196, 0.007956409826874733, 0.026772281154990196, 0.006259147077798843, 0.007956409826874733, 0.003846650244668126, 0.026772281154990196, 0.026772281154990196, 0.00978186447173357, 0.004542048089206219, 0.002425362356007099, 0.026772281154990196, 0.007956409826874733, 0.006259147077798843, 0.026772281154990196, 0.026772281154990196, 0.027986204251646996, 0.027986204251646996, 0.022197909653186798, 0.027986204251646996, 0.008985023945569992, 0.005332175642251968, 0.005112563259899616, 0.005332175642251968, 0.027986204251646996, 0.007989165373146534, 0.0025279943365603685, 0.008985023945569992], "q_value_solved": 2, "reset_mask": [true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS (b * a) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2080 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS (b * a) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h1 := hS b a"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"children_for_tactic": [[{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}], [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}]], "counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "exploration": 0.3, "in_minimum_proof": {"DEPTH": false, "SIZE": false, "TIME": false}, "in_proof": false, "is_solved_leaf": false, "killed_tactics": [], "log_critic_value": -0.5, "log_w": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.858741241301949, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8637409363972478, 0.8612065266896556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "minimum_proof_size": {"DEPTH": 9223372036854775807, "SIZE": 9223372036854775807, "TIME": 9223372036854775807}, "minimum_tactic_length": {"DEPTH": [], "SIZE": [], "TIME": []}, "minimum_tactics": {"DEPTH": [], "SIZE": [], "TIME": []}, "old_critic_value": 0.0, "policy": {"exploration": 0.3, "type": 1}, "priors": [0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.005907671060413122, 0.005907671060413122, 0.01828179508447647, 0.005907671060413122, 0.01828179508447647, 0.006251694168895483, 0.006251694168895483, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.005907671060413122, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.005907671060413122, 0.005907671060413122, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.00931127741932869, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.005907671060413122, 0.01828179508447647, 0.01828179508447647, 0.01828179508447647, 0.016330890357494354, 0.010728971101343632, 0.016330890357494354, 0.005692157428711653, 0.016330890357494354, 0.016330890357494354, 0.016330890357494354, 0.016330890357494354, 0.016330890357494354, 0.016330890357494354, 0.016330890357494354, 0.005597158335149288], "q_value_solved": 2, "reset_mask": [true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true], "solved": false, "solving_tactics": [], "tactic_expandable": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], "tactic_init_value": 0.0, "tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "theorem": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}, "virtual_counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}], "params": {"backup_once": false, "backup_one_for_solved": true, "count_threshold": 10, "critic_subsampling_rate": 1.0, "depth_penalty": 0.99, "early_stopping": true, "early_stopping_solved_if_root_not_proven": true, "effect_subsampling_rate": 1.0, "exploration": 0.3, "metric": 2, "no_critic": false, "node_mask": 0, "num_expansions": 500, "only_learn_best_tactics": false, "policy_temperature": 0.7, "policy_type": 1, "q_value_solved": 2, "succ_expansions": 3, "tactic_init_value": 0.0, "tactic_p_threshold": true, "tactic_sample_q_conditioning": false, "virtual_loss": 0}, "permanent_ancestors": {"theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n": [["", 0]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", 58]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS (b * a) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 14]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 34]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 23]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 32]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 20]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", 45]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a (b * a)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 33]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 31]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 33]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 63], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 6], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 30], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 36]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", 4]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 21]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nhave h\u2084 := hS b (b * a)": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 62], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 60], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 17], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 6]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 61], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 58], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 54], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 53], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 51], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 49], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 47], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 46], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 44], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 42], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 40], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 33], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 32], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 13], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 11], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 37], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 26], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 8], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 5], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 35], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 4], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 3], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 2], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 1], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 0], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 14], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 15], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 16], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 20], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 21], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 22], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 23], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 25], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 38], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 27], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 39], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 28], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 29], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", 30]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 57], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 50], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 45], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 55], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 36], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 34], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 24], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 31], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 12], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 10], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 8]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 41], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 19], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 9], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 7], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", 1]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc, hS] at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 18], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 17]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 59], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 56], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 52], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 43], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 15]], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081": [["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 48], ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", 26]]}, "policy": {"exploration": 0.3, "type": 1}, "propagate_needed": false, "root": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}, "seed": 42, "simulations": [{"children_for_theorem": {"10041070152938961489": {"previous": 842976703719519088, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}]}, "12116204433008218031": {"previous": 16342763735530018773, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}]}, "16342763735530018773": {"previous": 16579496881221230816, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}]}, "16579496881221230816": {"previous": 0, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}]}, "17735310507799149018": {"previous": 10041070152938961489, "value": []}, "842976703719519088": {"previous": 12116204433008218031, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}]}}, "depth": {"10041070152938961489": {"previous": 842976703719519088, "value": 4}, "12116204433008218031": {"previous": 16342763735530018773, "value": 2}, "16342763735530018773": {"previous": 16579496881221230816, "value": 1}, "16579496881221230816": {"previous": 0, "value": 0}, "17735310507799149018": {"previous": 10041070152938961489, "value": 5}, "842976703719519088": {"previous": 12116204433008218031, "value": 3}}, "expansions": 1, "parent_for_theorem": {"10041070152938961489": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}, "12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "16579496881221230816": {"previous": 0, "value": null}, "17735310507799149018": {"previous": 10041070152938961489, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}}, "root": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}, "seen": null, "solved": null, "tactic_ids": {"10041070152938961489": {"previous": 842976703719519088, "value": 35}, "12116204433008218031": {"previous": 16342763735530018773, "value": 45}, "16342763735530018773": {"previous": 16579496881221230816, "value": 9}, "16579496881221230816": {"previous": 0, "value": 49}, "842976703719519088": {"previous": 12116204433008218031, "value": 49}}, "tactics": {"10041070152938961489": {"previous": 842976703719519088, "value": {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}}, "12116204433008218031": {"previous": 16342763735530018773, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}}, "16579496881221230816": {"previous": 0, "value": {"duration": 0, "is_valid": true, "unique_string": "intro a b"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}}}, "theorems": {"10041070152938961489": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b"}}, "12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "16579496881221230816": {"previous": 0, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "17735310507799149018": {"previous": 10041070152938961489, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (b * a) b"}, {"duration": 0, "is_valid": true, "unique_string": "simp at h\u2081 h\u2082 h\u2083"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}}, "values": null, "virtual_count_added": {"10041070152938961489": {"previous": 842976703719519088, "value": true}, "12116204433008218031": {"previous": 16342763735530018773, "value": true}, "16342763735530018773": {"previous": 16579496881221230816, "value": true}, "16579496881221230816": {"previous": 0, "value": true}, "17735310507799149018": {"previous": 10041070152938961489, "value": false}, "842976703719519088": {"previous": 12116204433008218031, "value": true}}}, {"children_for_theorem": {"12116204433008218031": {"previous": 16342763735530018773, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}]}, "16342763735530018773": {"previous": 16579496881221230816, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}]}, "16579496881221230816": {"previous": 0, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}]}, "3014227773155032910": {"previous": 842976703719519088, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}]}, "842976703719519088": {"previous": 12116204433008218031, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}]}, "9604053314602174359": {"previous": 3014227773155032910, "value": []}}, "depth": {"12116204433008218031": {"previous": 16342763735530018773, "value": 2}, "16342763735530018773": {"previous": 16579496881221230816, "value": 1}, "16579496881221230816": {"previous": 0, "value": 0}, "3014227773155032910": {"previous": 842976703719519088, "value": 4}, "842976703719519088": {"previous": 12116204433008218031, "value": 3}, "9604053314602174359": {"previous": 3014227773155032910, "value": 5}}, "expansions": 1, "parent_for_theorem": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "16579496881221230816": {"previous": 0, "value": null}, "3014227773155032910": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}, "9604053314602174359": {"previous": 3014227773155032910, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}}}, "root": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}, "seen": null, "solved": null, "tactic_ids": {"12116204433008218031": {"previous": 16342763735530018773, "value": 45}, "16342763735530018773": {"previous": 16579496881221230816, "value": 9}, "16579496881221230816": {"previous": 0, "value": 49}, "3014227773155032910": {"previous": 842976703719519088, "value": 43}, "842976703719519088": {"previous": 12116204433008218031, "value": 2}}, "tactics": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}}, "16579496881221230816": {"previous": 0, "value": {"duration": 0, "is_valid": true, "unique_string": "intro a b"}}, "3014227773155032910": {"previous": 842976703719519088, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}}}, "theorems": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "16579496881221230816": {"previous": 0, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "3014227773155032910": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}, "9604053314602174359": {"previous": 3014227773155032910, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS b (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)"}}}, "values": null, "virtual_count_added": {"12116204433008218031": {"previous": 16342763735530018773, "value": true}, "16342763735530018773": {"previous": 16579496881221230816, "value": true}, "16579496881221230816": {"previous": 0, "value": true}, "3014227773155032910": {"previous": 842976703719519088, "value": true}, "842976703719519088": {"previous": 12116204433008218031, "value": true}, "9604053314602174359": {"previous": 3014227773155032910, "value": false}}}, {"children_for_theorem": {"12116204433008218031": {"previous": 16342763735530018773, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}]}, "13920815031433863277": {"previous": 3014227773155032910, "value": []}, "16342763735530018773": {"previous": 16579496881221230816, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}]}, "16579496881221230816": {"previous": 0, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}]}, "3014227773155032910": {"previous": 842976703719519088, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}]}, "842976703719519088": {"previous": 12116204433008218031, "value": [{"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}]}}, "depth": {"12116204433008218031": {"previous": 16342763735530018773, "value": 2}, "13920815031433863277": {"previous": 3014227773155032910, "value": 5}, "16342763735530018773": {"previous": 16579496881221230816, "value": 1}, "16579496881221230816": {"previous": 0, "value": 0}, "3014227773155032910": {"previous": 842976703719519088, "value": 4}, "842976703719519088": {"previous": 12116204433008218031, "value": 3}}, "expansions": 1, "parent_for_theorem": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "13920815031433863277": {"previous": 3014227773155032910, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "16579496881221230816": {"previous": 0, "value": null}, "3014227773155032910": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}}, "root": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}, "seen": null, "solved": null, "tactic_ids": {"12116204433008218031": {"previous": 16342763735530018773, "value": 45}, "16342763735530018773": {"previous": 16579496881221230816, "value": 9}, "16579496881221230816": {"previous": 0, "value": 49}, "3014227773155032910": {"previous": 842976703719519088, "value": 11}, "842976703719519088": {"previous": 12116204433008218031, "value": 2}}, "tactics": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}}, "16579496881221230816": {"previous": 0, "value": {"duration": 0, "is_valid": true, "unique_string": "intro a b"}}, "3014227773155032910": {"previous": 842976703719519088, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}}}, "theorems": {"12116204433008218031": {"previous": 16342763735530018773, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a"}}, "13920815031433863277": {"previous": 3014227773155032910, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2084 := hS a (a * b)"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)"}}, "16342763735530018773": {"previous": 16579496881221230816, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b"}}, "16579496881221230816": {"previous": 0, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"}}, "3014227773155032910": {"previous": 842976703719519088, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2083 := hS (a * b) a"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a"}}, "842976703719519088": {"previous": 12116204433008218031, "value": {"conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", "ctx": {"namespaces": []}, "hypotheses": [], "past_tactics": [{"duration": 0, "is_valid": true, "unique_string": "intro a b"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2081 := hS b a"}, {"duration": 0, "is_valid": true, "unique_string": "have h\u2082 := hS a b"}], "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b"}}}, "values": null, "virtual_count_added": {"12116204433008218031": {"previous": 16342763735530018773, "value": true}, "13920815031433863277": {"previous": 3014227773155032910, "value": false}, "16342763735530018773": {"previous": 16579496881221230816, "value": true}, "16579496881221230816": {"previous": 0, "value": true}, "3014227773155032910": {"previous": 842976703719519088, "value": true}, "842976703719519088": {"previous": 12116204433008218031, "value": true}}}], "simulations_for_theorem": {"theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS a (a * b)": [], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a\nhave h\u2084 := hS b (a * b)": [], "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (b * a) b\nsimp at h\u2081 h\u2082 h\u2083": []}, "unexplored_theorems": ["theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n"]} \ No newline at end of file +{ + "ancestors": { + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n": [ + [ + "", + 0 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 58 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 19 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 41 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 47 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 23 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 2 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 55 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 59 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 3 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 36 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 28 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 58 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 5 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 53 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 2 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 44 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 29 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 52 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 28 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 24 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 4 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 26 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 34 + ] + ] + }, + "backedup_hashes": [], + "currently_expanding": [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + ], + "done": false, + "expansion_count": 9, + "initial_minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "nodes": [ + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.016848249360919, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065, + 0.0024486470501869917, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065, + 0.01551389042288065 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * (b * a)) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * (b * a)) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * (b * a)) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.029047179967164993, + 0.010705706663429737, + 0.010705706663429737, + 0.029047179967164993, + 0.015694234520196915, + 0.029047179967164993, + 0.029047179967164993, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.015694234520196915, + 0.029047179967164993, + 0.010705706663429737, + 0.010705706663429737, + 0.010705706663429737, + 0.029047179967164993, + 0.015694234520196915, + 0.015694234520196915, + 0.010685855522751808, + 0.015694234520196915, + 0.0039747110567986965, + 0.029047179967164993, + 0.010705706663429737, + 0.029047179967164993, + 0.010705706663429737, + 0.010705706663429737, + 0.029047179967164993, + 0.015694234520196915, + 0.029047179967164993, + 0.029047179967164993, + 0.010685855522751808, + 0.006869869772344828, + 0.010705706663429737, + 0.015694234520196915, + 0.013658224605023861, + 0.021557528525590897, + 0.021557528525590897, + 0.018847310915589333, + 0.013658224605023861, + 0.013658224605023861, + 0.021557528525590897, + 0.018847310915589333, + 0.0058678328059613705, + 0.021557528525590897, + 0.018847310915589333, + 0.021557528525590897 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * (b * a)) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015577252954244614, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022, + 0.015831908211112022 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h2" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ] + ], + "counts": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + -0.5100503358535015, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.030063554644584656, + 0.030063554644584656, + 0.010107096284627914, + 0.014881405048072338, + 0.030063554644584656, + 0.030063554644584656, + 0.012661238200962543, + 0.030063554644584656, + 0.004469410050660372, + 0.030063554644584656, + 0.012661238200962543, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.004469410050660372, + 0.014881405048072338, + 0.030063554644584656, + 0.010107096284627914, + 0.010107096284627914, + 0.030063554644584656, + 0.012661238200962543, + 0.010107096284627914, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.012661238200962543, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.030063554644584656, + 0.010107096284627914, + 0.012661238200962543, + 0.030063554644584656, + 0.012661238200962543, + 0.030063554644584656, + 0.025672752410173416, + 0.008871437981724739, + 0.008871437981724739, + 0.024296864867210388, + 0.025613628327846527, + 0.009767033159732819, + 0.010177016258239746 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (a * b) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1 h2" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h3 := hS (b * a) b" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a (b * a)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all [mul_assoc]" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ] + ], + "counts": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a (b * a)" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a (b * a)" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all [mul_assoc]" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all [mul_assoc]" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.17808430288289956, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.17808430288289956, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.5100503358535015 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.00607823533937335, + 0.00607823533937335, + 0.03596969693899155, + 0.00945228524506092, + 0.006485720165073872, + 0.007499188184738159, + 0.006995710544288158, + 0.006485720165073872, + 0.03596969693899155, + 0.03596969693899155, + 0.03596969693899155, + 0.00607823533937335, + 0.010509527288377285, + 0.03596969693899155, + 0.00945228524506092, + 0.03596969693899155, + 0.03596969693899155, + 0.03596969693899155, + 0.03596969693899155, + 0.012030850164592266, + 0.00607823533937335, + 0.03596969693899155, + 0.007499188184738159, + 0.03596969693899155, + 0.00945228524506092, + 0.010509527288377285, + 0.006485720165073872, + 0.00945228524506092, + 0.03596969693899155, + 0.012030850164592266, + 0.00607823533937335, + 0.00607823533937335, + 0.00607823533937335, + 0.00607823533937335, + 0.00607823533937335, + 0.010509527288377285, + 0.003019945230334997, + 0.03596969693899155, + 0.010509527288377285, + 0.007499188184738159, + 0.00607823533937335, + 0.03596969693899155, + 0.03596969693899155, + 0.00945228524506092, + 0.006485720165073872, + 0.012030850164592266, + 0.03596969693899155, + 0.03596969693899155, + 0.00607823533937335, + 0.012030850164592266, + 0.00607823533937335, + 0.013484287075698376, + 0.04033989459276199, + 0.004718388896435499, + 0.007595814764499664, + 0.004005067981779575, + 0.011570462957024574, + 0.006603240966796875, + 0.011570462957024574, + 0.006603240966796875, + 0.006603240966796875, + 0.006603240966796875 + ], + "q_value_solved": 2, + "reset_mask": [ + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a (b * a)" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp_all [mul_assoc]" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.5100503358535015, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.03343154117465019, + 0.032694995403289795, + 0.032694995403289795, + 0.032694995403289795, + 0.032694995403289795 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h2 := hS a b" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h1" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.5100503358535015, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.008354091085493565, + 0.008354091085493565, + 0.022353608161211014, + 0.022353608161211014, + 0.008354091085493565, + 0.008354091085493565, + 0.0044280351139605045, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.006443017162382603, + 0.022353608161211014, + 0.0044280351139605045, + 0.022353608161211014, + 0.022353608161211014, + 0.0044280351139605045, + 0.022353608161211014, + 0.008354091085493565, + 0.0035172952339053154, + 0.022353608161211014, + 0.006443017162382603, + 0.022353608161211014, + 0.008354091085493565, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.0036683683283627033, + 0.008354091085493565, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.022353608161211014, + 0.0035172952339053154, + 0.022353608161211014, + 0.022353608161211014, + 0.0044280351139605045, + 0.0044280351139605045, + 0.022353608161211014, + 0.008354091085493565, + 0.022353608161211014, + 0.022353608161211014, + 0.008354091085493565, + 0.022353608161211014, + 0.005507837515324354, + 0.010391384363174438, + 0.010391384363174438, + 0.010391384363174438, + 0.020256105810403824, + 0.022360097616910934, + 0.022360097616910934, + 0.004873059689998627, + 0.022360097616910934, + 0.0035824798978865147, + 0.008934475481510162, + 0.022360097616910934 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp [mul_assoc] at h\u2081" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2080 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2080 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2080 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.8687157588455976, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.5752064977674498, + 0.17808430288289956, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.02535299025475979, + 0.007534612901508808, + 0.005481547676026821, + 0.02535299025475979, + 0.02535299025475979, + 0.02535299025475979, + 0.0059757535345852375, + 0.02535299025475979, + 0.004083715844899416, + 0.019288484007120132, + 0.02535299025475979, + 0.004301258362829685, + 0.002930797403678298, + 0.002930797403678298, + 0.02535299025475979, + 0.02535299025475979, + 0.007534612901508808, + 0.004301258362829685, + 0.005927328020334244, + 0.0005718304892070591, + 0.007534612901508808, + 0.019288484007120132, + 0.009263294748961926, + 0.019288484007120132, + 0.02535299025475979, + 0.02535299025475979, + 0.007534612901508808, + 0.02535299025475979, + 0.0048558032140135765, + 0.002930797403678298, + 0.02535299025475979, + 0.02535299025475979, + 0.004083715844899416, + 0.019288484007120132, + 0.02535299025475979, + 0.02535299025475979, + 0.02535299025475979, + 0.019288484007120132, + 0.0036427259910851717, + 0.02535299025475979, + 0.009263294748961926, + 0.019288484007120132, + 0.0036427259910851717, + 0.02535299025475979, + 0.02535299025475979, + 0.02535299025475979, + 0.005927328020334244, + 0.0022967855911701918, + 0.007534612901508808, + 0.007534612901508808, + 0.019288484007120132, + 0.02535299025475979, + 0.008508697152137756, + 0.021021122112870216, + 0.004188773222267628, + 0.026502558961510658, + 0.005049498751759529, + 0.021021122112870216, + 0.026502558961510658, + 0.026502558961510658, + 0.004138687625527382, + 0.008508697152137756, + 0.026502558961510658, + 0.026502558961510658 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2080 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS (b * a) a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h1 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "children_for_tactic": [ + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ] + ], + "counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "effects": [ + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + { + "children": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ], + "goal": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + } + ], + "error": false, + "exploration": 0.3, + "in_minimum_proof": { + "DEPTH": false, + "SIZE": false, + "TIME": false + }, + "in_proof": false, + "is_solved_leaf": false, + "killed_tactics": [], + "log_critic_value": -0.5, + "log_w": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.8612065266896556, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.8637409363972478, + 0.8612316513645115, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "minimum_proof_size": { + "DEPTH": 9223372036854775807, + "SIZE": 9223372036854775807, + "TIME": 9223372036854775807 + }, + "minimum_tactic_length": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "minimum_tactics": { + "DEPTH": [], + "SIZE": [], + "TIME": [] + }, + "old_critic_value": 0.0, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "priors": [ + 0.006487193051725626, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.009662030264735222, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.006130211055278778, + 0.0040218117646873, + 0.018970463424921036, + 0.006487193051725626, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.006130211055278778, + 0.018970463424921036, + 0.018970463424921036, + 0.0041702729649841785, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.009662030264735222, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.006130211055278778, + 0.006130211055278778, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.018970463424921036, + 0.01694606989622116, + 0.01694606989622116, + 0.01113312691450119, + 0.0021716745104640722, + 0.00462294602766633, + 0.01113312691450119, + 0.01694606989622116, + 0.01694606989622116, + 0.01113312691450119, + 0.01694606989622116, + 0.01113312691450119, + 0.0021716745104640722 + ], + "q_value_solved": 2, + "reset_mask": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "solved": false, + "solving_tactics": [], + "tactic_expandable": [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true + ], + "tactic_init_value": 0.0, + "tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "theorem": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "virtual_counts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "params": { + "backup_once": false, + "backup_one_for_solved": true, + "count_threshold": 10, + "critic_subsampling_rate": 1.0, + "depth_penalty": 0.99, + "early_stopping": true, + "early_stopping_solved_if_root_not_proven": true, + "effect_subsampling_rate": 1.0, + "exploration": 0.3, + "metric": 1, + "no_critic": false, + "node_mask": 4, + "num_expansions": 500, + "only_learn_best_tactics": false, + "policy_temperature": 0.7, + "policy_type": 1, + "q_value_solved": 2, + "succ_expansions": 3, + "tactic_init_value": 0.0, + "tactic_p_threshold": true, + "tactic_sample_q_conditioning": false, + "virtual_loss": 0 + }, + "permanent_ancestors": { + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n": [ + [ + "", + 0 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + 58 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 19 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 41 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a (b * a)": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 47 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 23 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nhave h3 := hS (b * a) b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 2 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nhave h3 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 55 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp at h1 h2", + 59 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nhave h2 := hS a b", + 3 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 36 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1", + 28 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b\nsimp [mul_assoc] at h2": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp [mul_assoc] at h1\nhave h2 := hS a b", + 58 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp at h1": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 5 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a\nsimp_all [mul_assoc]": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h1 := hS b a", + 53 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2080 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 2 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS (b * a) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 6 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 63 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + 44 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 62 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 61 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 59 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 58 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 57 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 56 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 52 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 24 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 4 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 28 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 29 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * (b * a)) b": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 52 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 55 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 50 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 45 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 39 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 36 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 33 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 0 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 38 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 3 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 5 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 6 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 25 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 8 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 46 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 11 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 13 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 16 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 53 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 18 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 31 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 21 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 28 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 49 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 41 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 35 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 34 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 32 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 30 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 1 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 2 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 15 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 42 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 7 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 44 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 9 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 48 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 10 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 12 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 14 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 17 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 19 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 22 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 23 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 24 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp_all": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 47 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 43 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 37 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 54 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 29 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 27 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 51 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 26 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 20 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + 4 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp [mul_assoc] at h\u2081": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 60 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 40 + ], + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 26 + ] + ], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nsimp at h\u2081": [ + [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + 34 + ] + ] + }, + "policy": { + "exploration": 0.3, + "type": 1 + }, + "propagate_needed": false, + "root": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "seed": 42, + "simulations": [ + { + "children_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ] + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ] + }, + "16579496881221230816": { + "previous": 0, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ] + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": [] + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ] + } + }, + "depth": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 2 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 1 + }, + "16579496881221230816": { + "previous": 0, + "value": 0 + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": 4 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 3 + } + }, + "expansions": 1, + "parent_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "16579496881221230816": { + "previous": 0, + "value": null + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + } + }, + "root": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "seen": null, + "solved": null, + "tactic_ids": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 29 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 29 + }, + "16579496881221230816": { + "previous": 0, + "value": 49 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 0 + } + }, + "tactics": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + } + }, + "theorems": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + } + }, + "values": null, + "virtual_count_added": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": true + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": true + }, + "16579496881221230816": { + "previous": 0, + "value": true + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": false + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": true + } + } + }, + { + "children_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ] + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ] + }, + "16579496881221230816": { + "previous": 0, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ] + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": [] + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + ] + } + }, + "depth": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 2 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 1 + }, + "16579496881221230816": { + "previous": 0, + "value": 0 + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": 4 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 3 + } + }, + "expansions": 1, + "parent_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "16579496881221230816": { + "previous": 0, + "value": null + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + } + }, + "root": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "seen": null, + "solved": null, + "tactic_ids": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 29 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 29 + }, + "16579496881221230816": { + "previous": 0, + "value": 50 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 0 + } + }, + "tactics": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + } + }, + "theorems": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2083 := hS (a * b) a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + } + }, + "values": null, + "virtual_count_added": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": true + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": true + }, + "16579496881221230816": { + "previous": 0, + "value": true + }, + "3014227773155032910": { + "previous": 842976703719519088, + "value": false + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": true + } + } + }, + { + "children_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + ] + }, + "14195976025840234014": { + "previous": 842976703719519088, + "value": [] + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + ] + }, + "16579496881221230816": { + "previous": 0, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + ] + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": [ + { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + ] + } + }, + "depth": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 2 + }, + "14195976025840234014": { + "previous": 842976703719519088, + "value": 4 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 1 + }, + "16579496881221230816": { + "previous": 0, + "value": 0 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 3 + } + }, + "expansions": 1, + "parent_for_theorem": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "14195976025840234014": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "16579496881221230816": { + "previous": 0, + "value": null + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + } + }, + "root": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + }, + "seen": null, + "solved": null, + "tactic_ids": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": 29 + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": 29 + }, + "16579496881221230816": { + "previous": 0, + "value": 49 + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": 34 + } + }, + "tactics": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + } + }, + "theorems": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a" + } + }, + "14195976025840234014": { + "previous": 842976703719519088, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "simp at h\u2081 h\u2082" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082" + } + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b" + } + }, + "16579496881221230816": { + "previous": 0, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + } + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": { + "conclusion": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [ + { + "duration": 0, + "is_valid": true, + "unique_string": "intro a b" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2081 := hS b a" + }, + { + "duration": 0, + "is_valid": true, + "unique_string": "have h\u2082 := hS a b" + } + ], + "unique_string": "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b" + } + } + }, + "values": null, + "virtual_count_added": { + "12116204433008218031": { + "previous": 16342763735530018773, + "value": true + }, + "14195976025840234014": { + "previous": 842976703719519088, + "value": false + }, + "16342763735530018773": { + "previous": 16579496881221230816, + "value": true + }, + "16579496881221230816": { + "previous": 0, + "value": true + }, + "842976703719519088": { + "previous": 12116204433008218031, + "value": true + } + } + } + ], + "simulations_for_theorem": { + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nhave h\u2083 := hS (a * b) a": [], + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n\nintro a b\nhave h\u2081 := hS b a\nhave h\u2082 := hS a b\nsimp at h\u2081 h\u2082": [] + }, + "unexplored_theorems": [ + "theorem putnam_2001_a1 (S : Type*) [Mul S] (hS : \u2200 a b : S, (a * b) * a = b) : \u2200 a b : S, a * (b * a) = b := by\n" + ] +} \ No newline at end of file diff --git a/samples/test.json b/samples/test.json index 5976435..df3ff5d 100644 --- a/samples/test.json +++ b/samples/test.json @@ -73,6 +73,63 @@ 0, 0 ], + "effects": [ + { + "children": [ + { + "conclusion": "C", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "C" + } + ], + "goal": { + "conclusion": "B", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "B" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "TACC" + } + }, + { + "children": [ + { + "conclusion": "C", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "C" + } + ], + "goal": { + "conclusion": "B", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "B" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "TACD" + } + } + ], + "error": false, "exploration": 0.3, "in_minimum_proof": { "DEPTH": false, @@ -178,6 +235,63 @@ 2, 1 ], + "effects": [ + { + "children": [ + { + "conclusion": "B", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "B" + } + ], + "goal": { + "conclusion": "A", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "A" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "TACA" + } + }, + { + "children": [ + { + "conclusion": "B", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "B" + } + ], + "goal": { + "conclusion": "A", + "ctx": { + "namespaces": [] + }, + "hypotheses": [], + "past_tactics": [], + "unique_string": "A" + }, + "tac": { + "duration": 0, + "is_valid": true, + "unique_string": "TACB" + } + } + ], + "error": false, "exploration": 0.3, "in_minimum_proof": { "DEPTH": false, diff --git a/src/graph/htps.cpp b/src/graph/htps.cpp index a92a24c..79cba03 100644 --- a/src/graph/htps.cpp +++ b/src/graph/htps.cpp @@ -772,13 +772,11 @@ bool HTPSNode::has_virtual_count() const { } HTPSNode HTPSNode::from_json(const nlohmann::json &j) { - HTPSNode node; - node.thm =j["theorem"]; + TheoremPointer thm = j["theorem"]; std::vector> tactics; for (const auto &tac: j["tactics"]) { tactics.push_back(tac); } - node.tactics = tactics; std::vector> children_for_tactic; for (const auto &children: j["children_for_tactic"]) { std::vector children_for_tactic_inner; @@ -787,28 +785,30 @@ HTPSNode HTPSNode::from_json(const nlohmann::json &j) { } children_for_tactic.push_back(children_for_tactic_inner); } - node.children_for_tactic = children_for_tactic; - node.killed_tactics = j["killed_tactics"].get>(); - node.solving_tactics = j["solving_tactics"].get>(); - node.tactic_expandable = j["tactic_expandable"].get>(); - node.minimum_proof_size = MinimumLengthMap::from_json(j["minimum_proof_size"]); - node.minimum_tactics = MinimumTacticMap::from_json(j["minimum_tactics"]); - node.minimum_tactic_length = MinimumTacticLengthMap::from_json(j["minimum_tactic_length"]); - node.in_minimum_proof = MinimumBoolMap::from_json(j["in_minimum_proof"]); - node.solved = j["solved"]; - node.is_solved_leaf = j["is_solved_leaf"]; - node.in_proof = j["in_proof"]; - node.old_critic_value = j["old_critic_value"]; + children_for_tactic = children_for_tactic; + std::unordered_set killed_tactics = j["killed_tactics"].get>(); + std::unordered_set solving_tactics = j["solving_tactics"].get>(); + std::vector tactic_expandable = j["tactic_expandable"].get>(); + auto minimum_proof_size = MinimumLengthMap::from_json(j["minimum_proof_size"]); + auto minimum_tactics = MinimumTacticMap::from_json(j["minimum_tactics"]); + auto minimum_tactic_length = MinimumTacticLengthMap::from_json(j["minimum_tactic_length"]); + auto in_minimum_proof = MinimumBoolMap::from_json(j["in_minimum_proof"]); + bool solved = j["solved"]; + bool is_solved_leaf = j["is_solved_leaf"]; + bool in_proof = j["in_proof"]; + double old_critic_value = j["old_critic_value"]; + double log_critic_value; if (!j["log_critic_value"].is_null()) { - node.log_critic_value = j["log_critic_value"]; + log_critic_value = j["log_critic_value"]; } else { - node.log_critic_value = MIN_FLOAT; + log_critic_value = MIN_FLOAT; } - node.priors = static_cast>(j["priors"]); - node.q_value_solved = j["q_value_solved"]; - node.policy = j["policy"]; - node.exploration = j["exploration"]; - node.tactic_init_value = j["tactic_init_value"]; + auto priors = static_cast>(j["priors"]); + QValueSolved q_value_solved = j["q_value_solved"]; + std::vector> effects = j["effects"]; + std::shared_ptr policy = j["policy"]; + double exploration = j["exploration"]; + double tactic_init_value = j["tactic_init_value"]; std::vector log_w; for (const auto &w: j["log_w"]) { if (w.is_null()) { @@ -817,10 +817,25 @@ HTPSNode HTPSNode::from_json(const nlohmann::json &j) { log_w.push_back(w); } } - node.log_w = log_w; - node.counts = static_cast>(j["counts"]); - node.virtual_counts = static_cast>(j["virtual_counts"]); - node.reset_mask = static_cast>(j["reset_mask"]); + + std::vector counts = static_cast>(j["counts"]); + std::vector virtual_counts = static_cast>(j["virtual_counts"]); + std::vector reset_mask = static_cast>(j["reset_mask"]); + bool error = j["error"]; + + HTPSNode node = {thm, tactics, children_for_tactic, policy, priors, exploration, log_critic_value, q_value_solved, tactic_init_value, effects, error}; + node.killed_tactics = killed_tactics; + node.solving_tactics = solving_tactics; + node.tactic_expandable = tactic_expandable; + node.minimum_proof_size = minimum_proof_size; + node.minimum_tactics = minimum_tactics; + node.minimum_tactic_length = minimum_tactic_length; + node.in_minimum_proof = in_minimum_proof; + node.solved = solved; + node.is_solved_leaf = is_solved_leaf; + node.in_proof = in_proof; + node.old_critic_value = old_critic_value; + node.log_critic_value = log_critic_value; return node; } @@ -850,6 +865,8 @@ HTPSNode::operator nlohmann::json() const { j["counts"] = counts; j["virtual_counts"] = virtual_counts; j["reset_mask"] = reset_mask; + j["error"] = error; + j["effects"] = effects; return j; } diff --git a/src/graph/htps.h b/src/graph/htps.h index d7c8b67..01c87a4 100644 --- a/src/graph/htps.h +++ b/src/graph/htps.h @@ -431,8 +431,6 @@ namespace htps { reset_HTPS_stats(); } - HTPSNode() = default; - /* Reset the HTPS statistics, resetting counts and logW values. * */ void reset_HTPS_stats();