[ { "formal": "exact hg.comp x hf", "informal": "Here, we provide the exact term hg.comp that solves our current goal." }, { "formal": "rw [\u2190 vsub_sub_vsub_cancel_right p\u2081 p p\u2082, smul_sub, sub_eq_add_neg, \u2190 smul_neg,\n neg_vsub_eq_vsub_rev, add_assoc, invOf_two_smul_add_invOf_two_smul, \u2190 vadd_vsub_assoc,\n midpoint_comm, midpoint, lineMap_apply]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [models_iff_not_satisfiable]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 not_iff_not, not_not, isSatisfiable_iff_isFinitelySatisfiable, IsFinitelySatisfiable]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro h T0 hT0", "informal": "We introduce new variables h." }, { "formal": "simpa using h (T0 \u222a {Formula.not \u03c6})\n (by\n simp only [Finset.coe_union, Finset.coe_singleton]\n exact Set.union_subset_union hT0 (Set.Subset.refl _))", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simpa using h (T0 \u222a {Formula.not \u03c6})\n (by\n simp only [Finset.coe_union, Finset.coe_singleton]\n exact Set.union_subset_union hT0 (Set.Subset.refl _))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simpa using h (T0 \u222a {Formula.not \u03c6})\n (by\n simp only [Finset.coe_union, Finset.coe_singleton]\n exact Set.union_subset_union hT0 (Set.Subset.refl _))", "informal": "Here, we provide the exact term using that solves our current goal." }, { "formal": "simp only [Finset.coe_union, Finset.coe_singleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Set.union_subset_union hT0 (Set.Subset.refl _)", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "exact Set.union_subset_union hT0 (Set.Subset.refl _)", "informal": "Here, we provide the exact term Set.union_subset_union that solves our current goal." }, { "formal": "intro h T0 hT0", "informal": "We introduce new variables h." }, { "formal": "exact IsSatisfiable.mono (h (T0.erase (Formula.not \u03c6))\n (by simpa using hT0)) (by simp)", "informal": "Here, we provide the exact term IsSatisfiable.mono that solves our current goal." }, { "formal": "simp only [blockDiagonal'_apply, diagonal]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hij]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Real.exp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : j = unit := by simp only [eq_iff_true_of_subsingleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [toBlocks\u2081\u2082, this, listTransvecCol_mul_mul_listTransvecRow_last_row M hM]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [eq_iff_true_of_subsingleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : i = unit := by simp only [eq_iff_true_of_subsingleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [toBlocks\u2082\u2081, this, listTransvecCol_mul_mul_listTransvecRow_last_col M hM]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [eq_iff_true_of_subsingleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have A :\n \u2200\u1d50 x \u2202\u03bc.restrict s,\n Tendsto (fun a => \u03bc (t \u2229 a) / \u03bc a) (v.filterAt x) (\ud835\udcdd (t.indicator 1 x)) := by\n apply ae_mono restrict_le_self\n apply ae_tendsto_measure_inter_div_of_measurableSet\n exact measurableSet_toMeasurable _ _", "informal": "Here, we apply the theorem/lemma A." }, { "formal": "have A :\n \u2200\u1d50 x \u2202\u03bc.restrict s,\n Tendsto (fun a => \u03bc (t \u2229 a) / \u03bc a) (v.filterAt x) (\ud835\udcdd (t.indicator 1 x)) := by\n apply ae_mono restrict_le_self\n apply ae_tendsto_measure_inter_div_of_measurableSet\n exact measurableSet_toMeasurable _ _", "informal": "Here, we provide the exact term A that solves our current goal." }, { "formal": "have B : \u2200\u1d50 x \u2202\u03bc.restrict s, t.indicator 1 x = (1 : \u211d\u22650\u221e) := by\n refine' ae_restrict_of_ae_restrict_of_subset (subset_toMeasurable \u03bc s) _\n filter_upwards [ae_restrict_mem (measurableSet_toMeasurable \u03bc s)] with _ hx\n simp only [hx, Pi.one_apply, indicator_of_mem]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h'x] at hx", "informal": "We're rewriting part of the expression using [h'x]." }, { "formal": "apply hx.congr' _", "informal": "Here, we apply the theorem/lemma hx.congr'." }, { "formal": "exact measure_toMeasurable_inter_of_sigmaFinite ha _", "informal": "Here, we provide the exact term measure_toMeasurable_inter_of_sigmaFinite that solves our current goal." }, { "formal": "apply ae_mono restrict_le_self", "informal": "Here, we apply the theorem/lemma ae_mono." }, { "formal": "apply ae_tendsto_measure_inter_div_of_measurableSet", "informal": "Here, we apply the theorem/lemma ae_tendsto_measure_inter_div_of_measurableSet." }, { "formal": "exact measurableSet_toMeasurable _ _", "informal": "Here, we provide the exact term measurableSet_toMeasurable that solves our current goal." }, { "formal": "simp only [hx, Pi.one_apply, indicator_of_mem]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Nat.cofinite_eq_atTop]", "informal": "We're rewriting part of the expression using [Nat.cofinite_eq_atTop]." }, { "formal": "exact eventually_norm_pow_le x", "informal": "Here, we provide the exact term eventually_norm_pow_le that solves our current goal." }, { "formal": "by_cases ha : a \u2208 s", "informal": "We're breaking down the problem into cases based on ha." }, { "formal": "simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [coe_basis, _root_.pow_zero, powerBasis_gen _ h\u03b6, totient_one, mul_zero, mul_one,\n show 1 / 2 = 0 by rfl, discr, traceMatrix]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h\u03b6.powerBasis_dim _, h\u03b6one, \u2190 (algebraMap K L).map_one,\n minpoly.eq_X_sub_C_of_algebraMap_inj _ (algebraMap K L).injective, natDegree_X_sub_C]", "informal": "We're rewriting part of the expression using [h\u03b6.powerBasis_dim." }, { "formal": "simp only [traceMatrix, map_one, one_pow, Matrix.det_unique, traceForm_apply, mul_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 (algebraMap K L).map_one, trace_algebraMap, finrank _ hirr]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "by_cases hk : p ^ (k + 1) = 2", "informal": "We're breaking down the problem into cases based on hk." }, { "formal": "have hp : p = 2 := by\n rw [\u2190 PNat.coe_inj, PNat.pow_coe, \u2190 pow_one 2] at hk\n replace hk :=\n eq_of_prime_pow_eq (prime_iff.1 hp.out) (prime_iff.1 Nat.prime_two) (succ_pos _) hk\n rwa [coe_two, PNat.coe_inj] at hk", "informal": "We're rewriting part of the expression using hp." }, { "formal": "rw [hp, \u2190 PNat.coe_inj, PNat.pow_coe] at hk", "informal": "We're rewriting part of the expression using [hp,." }, { "formal": "nth_rw 2 [\u2190 pow_one 2] at hk", "informal": "We're rewriting part of the expression using 2." }, { "formal": "rw [add_left_eq_self] at hk", "informal": "We're rewriting part of the expression using [add_left_eq_self]." }, { "formal": "rw [hp, hk] at h\u03b6", "informal": "We're rewriting part of the expression using [hp,." }, { "formal": "rw [\u2190 coe_two] at h\u03b6", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [coe_basis, powerBasis_gen]", "informal": "We're rewriting part of the expression using [coe_basis,." }, { "formal": "simp only [hp, hk]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [h\u03b6.eq_neg_one_of_two_right, show (-1 : L) = algebraMap K L (-1) by simp]", "informal": "We're rewriting part of the expression using [h\u03b6.eq_neg_one_of_two_right,." }, { "formal": "simp only [discr, traceMatrix_apply, Matrix.det_unique, Fin.default_eq_zero, Fin.val_zero,\n _root_.pow_zero, traceForm_apply, mul_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 (algebraMap K L).map_one, trace_algebraMap, finrank _ hirr, hp, hk]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [\u2190 coe_two]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 PNat.coe_inj, PNat.pow_coe, \u2190 pow_one 2] at hk", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact discr_prime_pow_ne_two h\u03b6 hirr hk", "informal": "Here, we provide the exact term discr_prime_pow_ne_two that solves our current goal." }, { "formal": "rw [isOpen_iff_nhds]", "informal": "We're rewriting part of the expression using [isOpen_iff_nhds]." }, { "formal": "simp_rw [le_principal_iff, nhds_pi, Filter.mem_pi', mem_nhds_iff]", "informal": "We're rewriting part of the expression using [le_principal_iff,." }, { "formal": "rintro \u27e8I, t, \u27e8h1, h2\u27e9\u27e9", "informal": "We introduce new variables \u27e8I,." }, { "formal": "simp_rw [Set.eval_image_pi (Finset.mem_coe.mpr hi)\n (pi_nonempty_iff.mpr fun i => \u27e8_, fun _ => (h1 i).choose_spec.2.2\u27e9)]", "informal": "We're rewriting part of the expression using [Set.eval_image_pi." }, { "formal": "exact (h1 i).choose_spec.2", "informal": "Here, we provide the exact term (h1 that solves our current goal." }, { "formal": "exact Subset.trans\n (Set.pi_mono fun i hi => (Set.eval_image_pi_subset hi).trans (h1 i).choose_spec.1) h2", "informal": "Here, we provide the exact term Subset.trans that solves our current goal." }, { "formal": "rintro \u27e8I, t, \u27e8h1, h2\u27e9\u27e9", "informal": "We introduce new variables \u27e8I,." }, { "formal": "by_cases hi : i \u2208 I", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "simp_rw [if_pos hi]", "informal": "We're rewriting part of the expression using [if_pos." }, { "formal": "exact \u27e8Subset.rfl, (h1 i) hi\u27e9", "informal": "Here, we provide the exact term \u27e8Subset.rfl, that solves our current goal." }, { "formal": "simp_rw [if_neg hi]", "informal": "We're rewriting part of the expression using [if_neg." }, { "formal": "exact \u27e8Subset.rfl, isOpen_univ, mem_univ _\u27e9", "informal": "Here, we provide the exact term \u27e8Subset.rfl, that solves our current goal." }, { "formal": "rw [\u2190 Set.univ_pi_ite]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [\u2190 ite_and, \u2190 Finset.mem_coe, and_self_iff, Set.univ_pi_ite, h2]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [EventuallyEq, ae_iff, not_imp] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : IsOpen (U \u2229 { a | f a \u2260 g a }) := by\n refine' isOpen_iff_mem_nhds.mpr fun a ha => inter_mem (hU.mem_nhds ha.1) _\n rcases ha with \u27e8ha : a \u2208 U, ha' : (f a, g a) \u2208 (diagonal Y)\u1d9c\u27e9\n exact\n (hf.continuousAt (hU.mem_nhds ha)).prod_mk_nhds (hg.continuousAt (hU.mem_nhds ha))\n (isClosed_diagonal.isOpen_compl.mem_nhds ha')", "informal": "We're breaking down the problem into cases based on :." }, { "formal": "exact fun x hx => Classical.not_not.1 fun h => this \u27e8hx, h\u27e9", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rcases ha with \u27e8ha : a \u2208 U, ha' : (f a, g a) \u2208 (diagonal Y)\u1d9c\u27e9", "informal": "We're breaking down the problem into cases based on ha." }, { "formal": "simp only [LinearMap.toMatrix', LinearEquiv.coe_mk, of_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply stdBasis_ne _ _ _ _ h", "informal": "Here, we apply the theorem/lemma stdBasis_ne." }, { "formal": "rw [h, stdBasis_same]", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "rw [zpow_neg h, inv_zpow]", "informal": "We're rewriting part of the expression using [zpow_neg." }, { "formal": "erw [\u2190 Classical.choose_spec h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [Pi.smul_apply, \u2190 ENNReal.coe_eq_coe, ne_eq, ennreal_coeFn_eq_coeFn_toMeasure,\n ENNReal.coe_smul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [abs_mul_abs_self]", "informal": "We're rewriting part of the expression using [abs_mul_abs_self]." }, { "formal": "simp only [mul_add, add_comm, add_left_comm, mul_comm, sub_eq_add_neg, mul_one, mul_neg,\n neg_add_rev, neg_neg, add_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [wbtw_comm] at *", "informal": "We're rewriting part of the expression using [wbtw_comm]." }, { "formal": "rw [sbtw_comm] at *", "informal": "We're rewriting part of the expression using [sbtw_comm]." }, { "formal": "exact h\u2081.trans_sbtw_left h\u2082", "informal": "Here, we provide the exact term h\u2081.trans_sbtw_left that solves our current goal." }, { "formal": "simp_rw [image_image, comp, h_comm]", "informal": "We're rewriting part of the expression using [image_image,." }, { "formal": "rintro \u27e8hprim, -\u27e9", "informal": "We introduce new variables \u27e8hprim,." }, { "formal": "rw [\u2190 subset_singleton_iff_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro t ht", "informal": "We introduce new variables t." }, { "formal": "rw [mem_singleton_iff, \u2190 PNat.coe_eq_one_iff]", "informal": "We're rewriting part of the expression using [mem_singleton_iff,." }, { "formal": "rintro (rfl | rfl)", "informal": "We introduce new variables (rfl." }, { "formal": "exact \u27e8fun h => h.elim, fun x => by convert (mem_top (R := A) : x \u2208 \u22a4)\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "rw [iff_singleton]", "informal": "We're rewriting part of the expression using [iff_singleton]." }, { "formal": "exact \u27e8\u27e80, IsPrimitiveRoot.of_subsingleton 0\u27e9,\n fun x => by convert (mem_top (R := A) : x \u2208 \u22a4)\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e80, that solves our current goal." }, { "formal": "rw [o.areaForm_to_volumeForm, o.abs_volumeForm_apply_of_pairwise_orthogonal]", "informal": "We're rewriting part of the expression using [o.areaForm_to_volumeForm,." }, { "formal": "intro i j hij", "informal": "We introduce new variables i." }, { "formal": "fin_cases i <;> fin_cases j", "informal": "We're breaking down the problem into cases based on i." }, { "formal": "simp [Fin.prod_univ_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [pow_succ']", "informal": "We're rewriting part of the expression using [pow_succ']." }, { "formal": "exact (LipschitzWith.iterate hf n).comp hf", "informal": "Here, we provide the exact term (LipschitzWith.iterate that solves our current goal." }, { "formal": "cases x\u2080", "informal": "We're breaking down the problem into cases based on x\u2080." }, { "formal": "cases x\u2081", "informal": "We're breaking down the problem into cases based on x\u2081." }, { "formal": "cases h\u2080", "informal": "We're breaking down the problem into cases based on h\u2080." }, { "formal": "cases h\u2081", "informal": "We're breaking down the problem into cases based on h\u2081." }, { "formal": "rw [\u2190 RingEquiv.toRingHom_eq_coe, \u2190 RingEquiv.toRingHom_eq_coe, comap_comap,\n RingEquiv.toRingHom_eq_coe, RingEquiv.toRingHom_eq_coe, RingEquiv.symm_comp, comap_id]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have hy' : \u2200 k, abv (bS.repr a k) \u2264 y' := by\n intro k\n exact @Finset.le_max' \u2124 _ _ _ (Finset.mem_image.mpr \u27e8k, Finset.mem_univ _, rfl\u27e9)", "informal": "We introduce new variables hy'." }, { "formal": "have hy' : \u2200 k, abv (bS.repr a k) \u2264 y' := by\n intro k\n exact @Finset.le_max' \u2124 _ _ _ (Finset.mem_image.mpr \u27e8k, Finset.mem_univ _, rfl\u27e9)", "informal": "Here, we provide the exact term hy' that solves our current goal." }, { "formal": "have : (y' : T) < y := by\n rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]\n apply (Finset.max'_lt_iff _ (him.image _)).mpr\n simp only [Finset.mem_image, exists_prop]\n rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9\n exact hy k", "informal": "Here, we apply the theorem/lemma :." }, { "formal": "have : (y' : T) < y := by\n rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]\n apply (Finset.max'_lt_iff _ (him.image _)).mpr\n simp only [Finset.mem_image, exists_prop]\n rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9\n exact hy k", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : (y' : T) < y := by\n rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]\n apply (Finset.max'_lt_iff _ (him.image _)).mpr\n simp only [Finset.mem_image, exists_prop]\n rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9\n exact hy k", "informal": "We introduce new variables :." }, { "formal": "have : (y' : T) < y := by\n rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]\n apply (Finset.max'_lt_iff _ (him.image _)).mpr\n simp only [Finset.mem_image, exists_prop]\n rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9\n exact hy k", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : (y' : T) < y := by\n rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]\n apply (Finset.max'_lt_iff _ (him.image _)).mpr\n simp only [Finset.mem_image, exists_prop]\n rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9\n exact hy k", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "apply (Int.cast_le.mpr (norm_le abv bS a hy')).trans_lt", "informal": "Here, we apply the theorem/lemma (Int.cast_le.mpr." }, { "formal": "simp only [Int.cast_mul, Int.cast_pow]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply mul_lt_mul' le_rfl", "informal": "Here, we apply the theorem/lemma mul_lt_mul'." }, { "formal": "intro k", "informal": "We introduce new variables k." }, { "formal": "exact @Finset.le_max' \u2124 _ _ _ (Finset.mem_image.mpr \u27e8k, Finset.mem_univ _, rfl\u27e9)", "informal": "Here, we provide the exact term @Finset.le_max' that solves our current goal." }, { "formal": "rw [y'_def, \u2190\n Finset.max'_image (show Monotone (_ : \u2124 \u2192 T) from fun x y h => Int.cast_le.mpr h)]", "informal": "We're rewriting part of the expression using [y'_def,." }, { "formal": "apply (Finset.max'_lt_iff _ (him.image _)).mpr", "informal": "Here, we apply the theorem/lemma (Finset.max'_lt_iff." }, { "formal": "simp only [Finset.mem_image, exists_prop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro _ \u27e8x, \u27e8k, -, rfl\u27e9, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact hy k", "informal": "Here, we provide the exact term hy that solves our current goal." }, { "formal": "exact pow_lt_pow_of_lt_left this (Int.cast_nonneg.mpr y'_nonneg) (Fintype.card_pos_iff.mpr \u27e8i\u27e9)", "informal": "Here, we provide the exact term pow_lt_pow_of_lt_left that solves our current goal." }, { "formal": "exact pow_nonneg (Int.cast_nonneg.mpr y'_nonneg) _", "informal": "Here, we provide the exact term pow_nonneg that solves our current goal." }, { "formal": "exact Int.cast_pos.mpr (normBound_pos abv bS)", "informal": "Here, we provide the exact term Int.cast_pos.mpr that solves our current goal." }, { "formal": "simp [Int.ediv_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Num.to_nat_to_int]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 Num.to_nat_to_int]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [n.to_int_eq_succ_pred, d.to_int_eq_succ_pred, \u2190 PosNum.to_nat_to_int, Num.succ'_to_nat,\n Num.div_to_nat]", "informal": "We're rewriting part of the expression using [n.to_int_eq_succ_pred,." }, { "formal": "rw [d.to_nat_eq_succ_pred]", "informal": "We're rewriting part of the expression using [d.to_nat_eq_succ_pred]." }, { "formal": "rw [n.to_int_eq_succ_pred, d.to_int_eq_succ_pred, \u2190 PosNum.to_nat_to_int, Num.succ'_to_nat,\n Num.div_to_nat]", "informal": "We're rewriting part of the expression using [n.to_int_eq_succ_pred,." }, { "formal": "rw [d.to_nat_eq_succ_pred]", "informal": "We're rewriting part of the expression using [d.to_nat_eq_succ_pred]." }, { "formal": "simp only [IsBasis.filter, FilterBasis.mem_filter_iff, mem_filterBasis_iff,\n exists_exists_and_eq_and]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [isometry_iff_dist_eq, dist_eq_norm_div, \u2190 map_div]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases (s.image f).eq_empty_or_nonempty with (hne | hne)", "informal": "We're breaking down the problem into cases based on (s.image." }, { "formal": "simp only [image_eq_empty] at hne", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hne, h0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [mem_image, exists_prop] at H", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases H with \u27e8a, has, hfa\u27e9", "informal": "We're breaking down the problem into cases based on H." }, { "formal": "rw [\u2190 insert_erase has]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [hfa]", "informal": "We're rewriting part of the expression using [hfa]." }, { "formal": "exact le_max' _ _ (mem_image_of_mem _ <| mem_of_mem_erase hx)", "informal": "Here, we provide the exact term le_max' that solves our current goal." }, { "formal": "rw [Multiset.sum_cons, Multiset.map_cons, Multiset.sum_cons, sum_add_index' h\u2080 h\u2081, ih]", "informal": "We're rewriting part of the expression using [Multiset.sum_cons,." }, { "formal": "rw [\u2190 (algebraMap_injective K).eq_iff, eq_div_iff (algebraMap_ne_zero hq)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "conv_rhs => rw [\u2190 num_div_denom x]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [RingHom.map_mul, RingHom.map_mul, div_eq_mul_inv, mul_assoc, mul_comm (Inv.inv _), \u2190\n mul_assoc, \u2190 div_eq_mul_inv, div_eq_iff]", "informal": "We're rewriting part of the expression using [RingHom.map_mul,." }, { "formal": "exact algebraMap_ne_zero (denom_ne_zero x)", "informal": "Here, we provide the exact term algebraMap_ne_zero that solves our current goal." }, { "formal": "conv in _ + _ => rw [add_comm]", "informal": "We're rewriting part of the expression using in." }, { "formal": "exact hg.add_atBot hf", "informal": "Here, we provide the exact term hg.add_atBot that solves our current goal." }, { "formal": "rw [\u2190 f.idealRange_eq_map]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact f.idealRange_eq_top_of_surjective h", "informal": "Here, we provide the exact term f.idealRange_eq_top_of_surjective that solves our current goal." }, { "formal": "simp only [derivedSeries_def, map_bracket_eq f h, ih, derivedSeriesOfIdeal_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [natTrailingDegree]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "refine'\n \u27e8fun wf b => \u27e8fun b' => ((PrincipalSeg.ofElement _ b).acc b').mpr (wf.apply b')\u27e9, fun wf =>\n \u27e8fun b => Acc.intro _ fun b' hb' => _\u27e9\u27e9", "informal": "Here, we apply the theorem/lemma \u27e8fun." }, { "formal": "refine'\n \u27e8fun wf b => \u27e8fun b' => ((PrincipalSeg.ofElement _ b).acc b').mpr (wf.apply b')\u27e9, fun wf =>\n \u27e8fun b => Acc.intro _ fun b' hb' => _\u27e9\u27e9", "informal": "We introduce new variables \u27e8fun." }, { "formal": "exact (f.acc b').mp ((wf b).apply b')", "informal": "Here, we apply the theorem/lemma (f.acc." }, { "formal": "exact (f.acc b').mp ((wf b).apply b')", "informal": "Here, we provide the exact term (f.acc that solves our current goal." }, { "formal": "cases i <;> rfl", "informal": "We're breaking down the problem into cases based on i." }, { "formal": "rw [mem_memberSubfamily, mem_nonMemberSubfamily]", "informal": "We're rewriting part of the expression using [mem_memberSubfamily,." }, { "formal": "exact And.imp_left (h <| subset_insert _ _)", "informal": "Here, we provide the exact term And.imp_left that solves our current goal." }, { "formal": "simp only [next, get_of_valid]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases l", "informal": "We're breaking down the problem into cases based on l." }, { "formal": "simp [hy, hz] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [prev, dif_neg hy, if_neg hz]", "informal": "We're rewriting part of the expression using [prev,." }, { "formal": "cases n", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "simp [eq_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [Fin.sum_cons]", "informal": "We're rewriting part of the expression using [Fin.sum_cons]." }, { "formal": "rw [antidiagonalTuple]", "informal": "We're rewriting part of the expression using [antidiagonalTuple]." }, { "formal": "simp_rw [List.mem_bind, List.mem_map,\n List.Nat.mem_antidiagonal, Fin.cons_eq_cons, exists_eq_right_right, ih,\n @eq_comm _ _ (Prod.snd _), and_comm (a := Prod.snd _ = _),\n \u2190Prod.mk.inj_iff (a\u2081 := Prod.fst _), exists_eq_right]", "informal": "We're rewriting part of the expression using [List.mem_bind,." }, { "formal": "rw [\u2190 left_cancel (x \u25c3\u207b\u00b9 y), right_inv, \u2190 left_cancel x, right_inv, self_distrib]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "repeat' rw [right_inv]", "informal": "We're rewriting part of the expression using rw." }, { "formal": "rw [right_inv]", "informal": "We're rewriting part of the expression using [right_inv]." }, { "formal": "rw [BoxAdditiveMap.volume, toSMul_apply]", "informal": "We're rewriting part of the expression using [BoxAdditiveMap.volume,." }, { "formal": "rw [zsmul_eq_mul, (n.cast_commute a).eq]", "informal": "We're rewriting part of the expression using [zsmul_eq_mul,." }, { "formal": "rw [odd_eq, get_even]", "informal": "We're rewriting part of the expression using [odd_eq,." }, { "formal": "rw [\u2190 ofDigits_one]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact h.symm", "informal": "Here, we provide the exact term h.symm that solves our current goal." }, { "formal": "replace hirr : Irreducible (cyclotomic (\u2191(p ^ (0 + 1)) : \u2115) K) := by simp [hirr]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "replace h\u03b6 : IsPrimitiveRoot \u03b6 (\u2191(p ^ (0 + 1)) : \u2115) := by simp [h\u03b6]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "haveI : IsCyclotomicExtension {p ^ (0 + 1)} K L := by simp [hcyc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hirr]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h\u03b6]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hcyc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Multiset.mem_map] at hs ht", "informal": "We're rewriting part of the expression using [Multiset.mem_map]." }, { "formal": "exact inr_ne_inl h", "informal": "Here, we provide the exact term inr_ne_inl that solves our current goal." }, { "formal": "rw [one_mul]", "informal": "We're rewriting part of the expression using [one_mul]." }, { "formal": "simp only [\u2190 contDiffWithinAt_univ, e.comp_contDiffWithinAt_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "refine' le_antisymm _ (H.closure_le.mpr <| by simp [a_in])", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro g g_in", "informal": "We introduce new variables g." }, { "formal": "simp [sub_eq_zero.mp h_zero, AddSubgroup.mem_closure_singleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [a_in]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "contradiction", "informal": "This step shows that our assumptions lead to a contradiction." }, { "formal": "exact AddSubgroup.sub_mem H g_in (AddSubgroup.zsmul_mem H a_in k)", "informal": "Here, we provide the exact term AddSubgroup.sub_mem that solves our current goal." }, { "formal": "exact lt_of_le_of_ne nonneg (Ne.symm h)", "informal": "Here, we provide the exact term lt_of_le_of_ne that solves our current goal." }, { "formal": "rw [iInf, Monotone.map_sInf_of_continuousAt' Cf Mf (range_nonempty g) bdd, \u2190 range_comp, iInf]", "informal": "We're rewriting part of the expression using [iInf,." }, { "formal": "rw [center_eq_iInf S hS, \u2190 iInf_subtype'']", "informal": "We're rewriting part of the expression using [center_eq_iInf." }, { "formal": "rw [Rel_iff]", "informal": "We're rewriting part of the expression using [Rel_iff]." }, { "formal": "simp only [mul_apply, eq_inv_iff_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases eq_or_ne c 0 with (rfl | hne)", "informal": "We're breaking down the problem into cases based on eq_or_ne." }, { "formal": "simp only [zero_smul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact isClosedMap_const", "informal": "Here, we provide the exact term isClosedMap_const that solves our current goal." }, { "formal": "exact (Homeomorph.smulOfNeZero c hne).isClosedMap", "informal": "Here, we provide the exact term (Homeomorph.smulOfNeZero that solves our current goal." }, { "formal": "exact ne_of_eq_of_ne p1 one_ne_zero", "informal": "Here, we provide the exact term ne_of_eq_of_ne that solves our current goal." }, { "formal": "rw [\u2190 comp_apply, h, comp_apply]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 comp_apply, h, comp_apply]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have : IsUnit (\u2191u\u207b\u00b9 * (\u2191u * a)) := by exists u\u207b\u00b9 * v; rw [\u2190 hv, Units.val_mul]", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [\u2190 hv, Units.val_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [Ioc_union_Ioc, Ioc_union_Ioc] <;>\nsimp [min_le_of_left_le, min_le_of_right_le, le_max_of_le_left, le_max_of_le_right, le_refl,\n min_assoc, max_comm]", "informal": "We're rewriting part of the expression using [Ioc_union_Ioc,." }, { "formal": "rw [Ioc_union_Ioc, Ioc_union_Ioc] <;>\nsimp [min_le_of_left_le, min_le_of_right_le, le_max_of_le_left, le_max_of_le_right, le_refl,\n min_assoc, max_comm]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "rw [Ioc_union_Ioc, Ioc_union_Ioc] <;>\nsimp [min_le_of_left_le, min_le_of_right_le, le_max_of_le_left, le_max_of_le_right, le_refl,\n min_assoc, max_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [zpow_ofNat, h.mul_pow n]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h.mul_pow, (h.pow_pow _ _).eq, mul_inv_rev]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [nodal, prod_insert hi]", "informal": "We're rewriting part of the expression using [nodal,." }, { "formal": "rw [IntervalIntegrable.iff_comp_neg]", "informal": "We're rewriting part of the expression using [IntervalIntegrable.iff_comp_neg]." }, { "formal": "conv_lhs => rw [mul_comm]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "intro h i", "informal": "We introduce new variables h." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "simp_rw [LinearMap.comp_apply, LinearMap.coe_single, PiToModule.fromEnd_apply_single_one,\n PiToModule.fromMatrix_apply_single_one]", "informal": "We're rewriting part of the expression using [LinearMap.comp_apply,." }, { "formal": "apply h", "informal": "Here, we apply the theorem/lemma h." }, { "formal": "intro c x", "informal": "We introduce new variables c." }, { "formal": "rw [nsmul_eq_smul_cast R, smul_eq_zero]", "informal": "We're rewriting part of the expression using [nsmul_eq_smul_cast." }, { "formal": "simp only [Nat.card_eq_fintype_card, Fintype.one_lt_card_iff_nontrivial]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [bit_val, Nat.bit_val]", "informal": "We're rewriting part of the expression using [bit_val,." }, { "formal": "cases b <;> rfl", "informal": "We're breaking down the problem into cases based on b." }, { "formal": "rw [of_c_eq_zero ha hb hc, hd, C_0]", "informal": "We're rewriting part of the expression using [of_c_eq_zero." }, { "formal": "rcases Multiset.mem_map.mp h with \u27e8\u27e8_, hp'\u27e9, \u27e8_, h_eq\u27e9\u27e9", "informal": "We're breaking down the problem into cases based on Multiset.mem_map.mp." }, { "formal": "exact h_eq \u25b8 hp'", "informal": "Here, we provide the exact term h_eq that solves our current goal." }, { "formal": "rw [\u2190 hG.right_invariance (compatible_of_mem_maximalAtlas he he')]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp_rw [LocalHomeomorph.trans_apply, e.left_inv xe]", "informal": "We're rewriting part of the expression using [LocalHomeomorph.trans_apply,." }, { "formal": "rw [hG.congr_iff]", "informal": "We're rewriting part of the expression using [hG.congr_iff]." }, { "formal": "simp only [xe, xe', mfld_simps]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [mem_preimage, LocalHomeomorph.coe_trans_symm, LocalHomeomorph.symm_symm,\n Function.comp_apply, e.left_inv hy]", "informal": "We're rewriting part of the expression using [mem_preimage,." }, { "formal": "simp_rw [e'.left_inv xe', xe]", "informal": "We're rewriting part of the expression using [e'.left_inv." }, { "formal": "simp only [mfld_simps]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [hy]", "informal": "We're rewriting part of the expression using [hy]." }, { "formal": "rw [pow_zero]", "informal": "We're rewriting part of the expression using [pow_zero]." }, { "formal": "exact one_mem_one", "informal": "Here, we provide the exact term one_mem_one that solves our current goal." }, { "formal": "rw [pow_succ]", "informal": "We're rewriting part of the expression using [pow_succ]." }, { "formal": "exact mul_mem_mul ha (pow_mem_pow ha _)", "informal": "Here, we provide the exact term mul_mem_mul that solves our current goal." }, { "formal": "rcases h.1 with \u27e8S, hSc, hSp, hS\u27e9", "informal": "We're breaking down the problem into cases based on h.1." }, { "formal": "exact fun _ h \u21a6 h.1.1", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "intro x hx y hy", "informal": "We introduce new variables x." }, { "formal": "simp only [mem_sInter, mem_inter_iff, mem_iInter, mem_compl_iff] at hx hy", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases hl s (hSp s hsS) with\n| inl hsl => simp only [hx.1.2 s \u27e8hsS, hsl\u27e9, hy.1.2 s \u27e8hsS, hsl\u27e9]\n| inr hsl => simp only [hx.2 s hsS hsl, hy.2 s hsS hsl]", "informal": "We're breaking down the problem into cases based on hl." }, { "formal": "cases hl s (hSp s hsS) with\n| inl hsl => simp only [hx.1.2 s \u27e8hsS, hsl\u27e9, hy.1.2 s \u27e8hsS, hsl\u27e9]\n| inr hsl => simp only [hx.2 s hsS hsl, hy.2 s hsS hsl]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hx.1.2 s \u27e8hsS, hsl\u27e9, hy.1.2 s \u27e8hsS, hsl\u27e9]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hx.2 s hsS hsl, hy.2 s hsS hsl]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact inter_mem\n (inter_mem hs ((countable_sInter_mem (hSc.mono (inter_subset_left _ _))).2 fun _ h \u21a6 h.2))\n ((countable_bInter_mem hSc).2 fun U hU \u21a6 iInter_mem.2 id)", "informal": "Here, we provide the exact term inter_mem that solves our current goal." }, { "formal": "simp [normSq_eq_abs]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 of_to_int n, e]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [e]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [get?_set_eq, get?_eq_get h]", "informal": "We're rewriting part of the expression using [get?_set_eq,." }, { "formal": "simp_rw [Metric.tendsto_atTop, ae_iff] at hfg", "informal": "We're rewriting part of the expression using [Metric.tendsto_atTop,." }, { "formal": "rw [\u2190 nonpos_iff_eq_zero, \u2190 hfg]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [Set.mem_inter_iff, Set.mem_iInter, ge_iff_le, mem_notConvergentSeq_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro \u27e8hmem, hx\u27e9", "informal": "We introduce new variables \u27e8hmem,." }, { "formal": "exact \u27e8n, hn\u2081, hn\u2082.le\u27e9", "informal": "Here, we provide the exact term \u27e8n, that solves our current goal." }, { "formal": "rcases n.eq_zero_or_pos with (rfl | h0)", "informal": "We're breaking down the problem into cases based on n.eq_zero_or_pos." }, { "formal": "apply minpoly.isIntegrallyClosed_dvd (isIntegral h h0)", "informal": "Here, we apply the theorem/lemma minpoly.isIntegrallyClosed_dvd." }, { "formal": "simp only [((IsPrimitiveRoot.iff_def \u03bc n).mp h).left, aeval_X_pow, eq_intCast, Int.cast_one,\n aeval_one, AlgHom.map_sub, sub_self]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [select, coeff_mk, coeff_mk]", "informal": "We're rewriting part of the expression using [select,." }, { "formal": "rw [(h n).resolve_right hn]", "informal": "We're rewriting part of the expression using [(h." }, { "formal": "rw [select, coeff_mk, coeff_mk]", "informal": "We're rewriting part of the expression using [select,." }, { "formal": "exact hn.symm", "informal": "Here, we provide the exact term hn.symm that solves our current goal." }, { "formal": "rw [\u2190 hx, \u2190 hy, select_add_select_not P z]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [mk._eq_1]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [y0, add_zero]", "informal": "We're rewriting part of the expression using [y0,." }, { "formal": "rw [h n |>.resolve_right y0, zero_add]", "informal": "We're rewriting part of the expression using [h." }, { "formal": "simp only [subset_iff, or_iff_not_imp_left, mem_erase, mem_insert, and_imp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact forall_congr' fun x => forall_swap", "informal": "Here, we provide the exact term forall_congr' that solves our current goal." }, { "formal": "simp only [h, hxs, MonoidHom.map_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "refine'\n Finset.prod_bij' (fun i' _hi' => e.symm i') (fun a ha => Finset.mem_image_of_mem _ ha)\n (fun a _ha => by simp_rw [e.apply_symm_apply]) (fun i _hi => e i) (fun a ha => _)\n (fun a _ha => e.apply_symm_apply a) fun a _ha => e.symm_apply_apply a", "informal": "Here, we apply the theorem/lemma Finset.prod_bij'." }, { "formal": "refine'\n Finset.prod_bij' (fun i' _hi' => e.symm i') (fun a ha => Finset.mem_image_of_mem _ ha)\n (fun a _ha => by simp_rw [e.apply_symm_apply]) (fun i _hi => e i) (fun a ha => _)\n (fun a _ha => e.apply_symm_apply a) fun a _ha => e.symm_apply_apply a", "informal": "We're rewriting part of the expression using Finset.prod_bij'." }, { "formal": "rcases Finset.mem_image.mp ha with \u27e8i', hi', rfl\u27e9", "informal": "We're breaking down the problem into cases based on Finset.mem_image.mp." }, { "formal": "dsimp only", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [e.apply_symm_apply]", "informal": "We're rewriting part of the expression using [e.apply_symm_apply]." }, { "formal": "rw [neg_mul, sub_neg_eq_add] at ht'", "informal": "We're rewriting part of the expression using [neg_mul,." }, { "formal": "conv_lhs => rw [ht, ht', add_mul, \u2190 neg_mul, mul_assoc]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [ht]", "informal": "We're rewriting part of the expression using [ht]." }, { "formal": "simp [hc0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [mul_assoc]", "informal": "We're rewriting part of the expression using [mul_assoc]." }, { "formal": "exact Nat.mul_le_mul_left _ (Nat.div_mul_le_self _ _)", "informal": "Here, we provide the exact term Nat.mul_le_mul_left that solves our current goal." }, { "formal": "rw [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]", "informal": "We're rewriting part of the expression using [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]." }, { "formal": "rw [h, BilinForm.toMatrix_compLeft, BilinForm.toMatrix_compRight, LinearMap.toMatrix_toLin,\n LinearMap.toMatrix_toLin, BilinForm.toMatrix_toBilin, BilinForm.toMatrix_toBilin]", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "intro B B'", "informal": "We introduce new variables B." }, { "formal": "constructor <;> intro h", "informal": "We introduce new variables <;>." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact (BilinForm.toMatrix b).injective h", "informal": "Here, we provide the exact term (BilinForm.toMatrix that solves our current goal." }, { "formal": "rw [Rat.mul_comm, Rat.add_mul, Rat.mul_comm, Rat.mul_comm c a]", "informal": "We're rewriting part of the expression using [Rat.mul_comm,." }, { "formal": "simp [Basis.equivFun, Finsupp.total_apply, Finsupp.sum_fintype, Finsupp.equivFunOnFinite]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [pow_succ, pow_two]", "informal": "We're rewriting part of the expression using [pow_succ,." }, { "formal": "rw [MvPolynomial.mem_map_C_iff, RingHom.mem_ker, MvPolynomial.ext_iff]", "informal": "We're rewriting part of the expression using [MvPolynomial.mem_map_C_iff,." }, { "formal": "simp_rw [coeff_map, coeff_zero, RingHom.mem_ker]", "informal": "We're rewriting part of the expression using [coeff_map,." }, { "formal": "simp [size_dual, add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [size_dual, size_dual]", "informal": "We're rewriting part of the expression using [size_dual,." }, { "formal": "exact b.symm", "informal": "Here, we provide the exact term b.symm that solves our current goal." }, { "formal": "intro g' hg'", "informal": "We introduce new variables g'." }, { "formal": "exact funext heq", "informal": "Here, we provide the exact term funext that solves our current goal." }, { "formal": "exact \u27e8m, n, hlt, hf _ (hgs m) _ (hgs n) hmn\u27e9", "informal": "Here, we provide the exact term \u27e8m, that solves our current goal." }, { "formal": "simp [FunLike.ext_iff, single_eq_set_indicator]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [lift_spec, \u2190 g.map_mul]", "informal": "We're rewriting part of the expression using [lift_spec,." }, { "formal": "exact f.eq_of_eq hg (by rw [sec_spec', f.toMap.map_mul])", "informal": "We're rewriting part of the expression using f.eq_of_eq." }, { "formal": "exact f.eq_of_eq hg (by rw [sec_spec', f.toMap.map_mul])", "informal": "Here, we provide the exact term f.eq_of_eq that solves our current goal." }, { "formal": "rw [sec_spec', f.toMap.map_mul]", "informal": "We're rewriting part of the expression using [sec_spec',." }, { "formal": "rw [\u2190 coeFn_le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [ha]", "informal": "We're rewriting part of the expression using [ha]." }, { "formal": "exact inf_le_right", "informal": "Here, we provide the exact term inf_le_right that solves our current goal." }, { "formal": "rw [sdiff_le_iff, sup_left_comm, \u2190 sdiff_le_iff]", "informal": "We're rewriting part of the expression using [sdiff_le_iff,." }, { "formal": "exact sdiff_sdiff_le.trans le_sup_sdiff", "informal": "Here, we provide the exact term sdiff_sdiff_le.trans that solves our current goal." }, { "formal": "rw [iSup, Mf.map_sSup_of_continuousAt Cf fbot, \u2190 range_comp, iSup]", "informal": "We're rewriting part of the expression using [iSup,." }, { "formal": "rcases H (Ultrafilter.of l) hl.ultrafilter_of ((Ultrafilter.of_le l).trans hls) with \u27e8x, hxs, hxl\u27e9", "informal": "We're breaking down the problem into cases based on H." }, { "formal": "exact \u27e8x, hxs, (ClusterPt.of_le_nhds hxl).mono (Ultrafilter.of_le l)\u27e9", "informal": "Here, we provide the exact term \u27e8x, that solves our current goal." }, { "formal": "rw [eq_div_iff_mul_eq', mul_comm]", "informal": "We're rewriting part of the expression using [eq_div_iff_mul_eq',." }, { "formal": "simp only [Filter.coprod\u1d62, mem_iSup, compl_mem_comap]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "induction p.unpair.2 <;> simp [*, add_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [one_lt_div f.rIn_pos]", "informal": "We're rewriting part of the expression using [one_lt_div." }, { "formal": "exact f.rIn_lt_rOut", "informal": "Here, we provide the exact term f.rIn_lt_rOut that solves our current goal." }, { "formal": "simp_rw [not_exists, not_frequently, not_lt] at h", "informal": "We're rewriting part of the expression using [not_exists,." }, { "formal": "simp only [eventually_map, ENNReal.coe_le_coe]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply (\u2131.cond (Sieve.coverByImage G X) (H.is_cover X)).isSeparatedFor.ext", "informal": "Here, we apply the theorem/lemma (\u2131.cond." }, { "formal": "rintro Y _ \u27e8Z, f\u2081, f\u2082, \u27e8rfl\u27e9\u27e9", "informal": "We introduce new variables Y." }, { "formal": "simp [h f\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [div_eq_mul_inv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [\u2190 mul_div_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [List.prod_toFinset _ hn.nodup_factors, List.map_id'', Nat.prod_factors hn.ne_zero]", "informal": "We're rewriting part of the expression using [List.prod_toFinset." }, { "formal": "rw [Finset.prod, Finset.map_val, Multiset.map_map]", "informal": "We're rewriting part of the expression using [Finset.prod,." }, { "formal": "rw [\u2190 @cast_one \u03b1, \u2190 cast_add]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact pure_le_nhdsWithin le_rfl", "informal": "Here, we provide the exact term pure_le_nhdsWithin that solves our current goal." }, { "formal": "exact AffineMap.lineMap_apply_module _ _ _", "informal": "Here, we provide the exact term AffineMap.lineMap_apply_module that solves our current goal." }, { "formal": "rw [\u2190 ncard_univ, \u2190 ncard_union_eq (@disjoint_compl_right _ _ s) hs hsc, union_compl_self]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [find?_eq_findEntry?]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Subsingleton.elim x y]", "informal": "We're rewriting part of the expression using [Subsingleton.elim." }, { "formal": "rw [w]", "informal": "We're rewriting part of the expression using [w]." }, { "formal": "rw [prod_const_one]", "informal": "We're rewriting part of the expression using [prod_const_one]." }, { "formal": "simp only [frequently_iff_forall_eventually_exists_and, exists_prop, @and_comm (P _)]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Subpresheaf.ext_iff, Function.funext_iff, Set.ext_iff, top_subpresheaf_obj,\n Set.top_eq_univ, Set.mem_univ, iff_true_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8fun H U => H (unop U), fun H U => H (op U)\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "apply StrictMonoOn.strictConvexOn_of_deriv (convex_Ici _) (continuousOn_pow _)", "informal": "Here, we apply the theorem/lemma StrictMonoOn.strictConvexOn_of_deriv." }, { "formal": "rw [deriv_pow', interior_Ici]", "informal": "We're rewriting part of the expression using [deriv_pow',." }, { "formal": "exact fun x (hx : 0 < x) y hy hxy =>\n mul_lt_mul_of_pos_left (pow_lt_pow_of_lt_left hxy hx.le <| Nat.sub_pos_of_lt hn)\n (Nat.cast_pos.2 <| zero_lt_two.trans_le hn)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "refine' Fin.cases _ _", "informal": "We're breaking down the problem into cases based on Fin.cases." }, { "formal": "rw [\u2190 neg_neg c, neg_smul, neg_smul (-c), neg_lt_neg_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact smul_lt_smul_of_pos h (neg_pos_of_neg hc)", "informal": "Here, we provide the exact term smul_lt_smul_of_pos that solves our current goal." }, { "formal": "rw [mem_nhds_induced, mem_comap]", "informal": "We're rewriting part of the expression using [mem_nhds_induced,." }, { "formal": "rw [le_isGLB_iff (succFn_spec i), mem_lowerBounds]", "informal": "We're rewriting part of the expression using [le_isGLB_iff." }, { "formal": "exact fun x hx \u21a6 le_of_lt hx", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "intro s hs\u2080 hs\u2081", "informal": "We introduce new variables s." }, { "formal": "rw [\u2190 preimage_comp, h_comm, preimage_comp, hs\u2081]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have h : (normalize : \u03b1 \u2192 \u03b1) = Associates.out \u2218 Associates.mk := by\n ext\n rw [Function.comp_apply, Associates.out_mk]", "informal": "We're rewriting part of the expression using h." }, { "formal": "rw [\u2190 Multiset.map_id' (normalizedFactors (x * y)), \u2190 Multiset.map_id' (normalizedFactors x), \u2190\n Multiset.map_id' (normalizedFactors y), \u2190 Multiset.map_congr rfl normalize_normalized_factor, \u2190\n Multiset.map_congr rfl normalize_normalized_factor, \u2190\n Multiset.map_congr rfl normalize_normalized_factor, \u2190 Multiset.map_add, h, \u2190\n Multiset.map_map Associates.out, eq_comm, \u2190 Multiset.map_map Associates.out]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply Multiset.map_mk_eq_map_mk_of_rel", "informal": "Here, we apply the theorem/lemma Multiset.map_mk_eq_map_mk_of_rel." }, { "formal": "apply factors_unique", "informal": "Here, we apply the theorem/lemma factors_unique." }, { "formal": "rw [Function.comp_apply, Associates.out_mk]", "informal": "We're rewriting part of the expression using [Function.comp_apply,." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "rcases Multiset.mem_add.1 hx with (hx | hx) <;> exact irreducible_of_normalized_factor x hx", "informal": "We're breaking down the problem into cases based on Multiset.mem_add.1." }, { "formal": "rcases Multiset.mem_add.1 hx with (hx | hx) <;> exact irreducible_of_normalized_factor x hx", "informal": "Here, we provide the exact term Multiset.mem_add.1 that solves our current goal." }, { "formal": "exact irreducible_of_normalized_factor", "informal": "Here, we provide the exact term irreducible_of_normalized_factor that solves our current goal." }, { "formal": "rw [Multiset.prod_add]", "informal": "We're rewriting part of the expression using [Multiset.prod_add]." }, { "formal": "rintro \u27e8g', g'meas, hg'\u27e9", "informal": "We introduce new variables \u27e8g',." }, { "formal": "apply ae_of_ae_restrict_of_ae_restrict_compl { x | f x \u2260 0 }", "informal": "Here, we apply the theorem/lemma ae_of_ae_restrict_of_ae_restrict_compl." }, { "formal": "rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal] at hg'", "informal": "We're rewriting part of the expression using [EventuallyEq,." }, { "formal": "rw [ae_restrict_iff' A]", "informal": "We're rewriting part of the expression using [ae_restrict_iff'." }, { "formal": "intro a ha h'a", "informal": "We introduce new variables a." }, { "formal": "rw [ha this]", "informal": "We're rewriting part of the expression using [ha." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "simp only [Classical.not_not, mem_setOf_eq, mem_compl_iff] at hx", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hx]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro \u27e8g', g'meas, hg'\u27e9", "informal": "We introduce new variables \u27e8g',." }, { "formal": "rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal]", "informal": "We're rewriting part of the expression using [EventuallyEq,." }, { "formal": "intro x hx h'x", "informal": "We introduce new variables x." }, { "formal": "rw [\u2190 hx, \u2190 mul_assoc, ENNReal.inv_mul_cancel h'x ENNReal.coe_ne_top, one_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply strictConcaveOn_of_deriv2_neg (convex_Icc _ _) continuousOn_cos fun x hx => ?_", "informal": "Here, we apply the theorem/lemma strictConcaveOn_of_deriv2_neg." }, { "formal": "rw [interior_Icc] at hx", "informal": "We're rewriting part of the expression using [interior_Icc]." }, { "formal": "simp [cos_pos_of_mem_Ioo hx]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Finsupp.lhom_ext", "informal": "Here, we apply the theorem/lemma Finsupp.lhom_ext." }, { "formal": "intro a b", "informal": "We introduce new variables a." }, { "formal": "conv_rhs => rw [\u2190 Finsupp.smul_single_one a b, LinearMap.map_smul]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "simp [KaehlerDifferential.derivationQuotKerTotal_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [of_c_eq_zero ha hb hc, natDegree_C]", "informal": "We're rewriting part of the expression using [of_c_eq_zero." }, { "formal": "simp only [RingHom.mem_ker, truncate, truncateFun, RingHom.coe_mk, TruncatedWittVector.ext_iff,\n TruncatedWittVector.coeff_mk, coeff_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Fin.forall_iff", "informal": "Here, we provide the exact term Fin.forall_iff that solves our current goal." }, { "formal": "simp [countP_eq_card_filter]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [clog_of_right_le_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [clog_of_one_le_right, (Nat.ceil_eq_iff (Nat.succ_ne_zero n)).mpr] <;> simp", "informal": "We're rewriting part of the expression using [clog_of_one_le_right,." }, { "formal": "rw [\u2190 QuotientGroup.ker_mk' K, \u2190 Subgroup.comap_map_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply (hH.map (QuotientGroup.mk' K)).comap_of_ker_isPGroup", "informal": "Here, we apply the theorem/lemma (hH.map." }, { "formal": "by_cases c : i = j", "informal": "We're breaking down the problem into cases based on c." }, { "formal": "simp [c, if_false, degreeOf_def, degrees_X]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [c, if_true, eq_self_iff_true, degreeOf_def, degrees_X, Multiset.count_singleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "constructor <;> intro h", "informal": "We introduce new variables <;>." }, { "formal": "rw [\u2190 hs, ennrealToMeasure_apply hmeas]", "informal": "Here, we apply the theorem/lemma [\u2190." }, { "formal": "rw [\u2190 hs, ennrealToMeasure_apply hmeas]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro s hs", "informal": "We introduce new variables s." }, { "formal": "by_cases hmeas : MeasurableSet s", "informal": "We're breaking down the problem into cases based on hmeas." }, { "formal": "rw [ennrealToMeasure_apply hmeas] at hs", "informal": "Here, we apply the theorem/lemma [ennrealToMeasure_apply." }, { "formal": "rw [ennrealToMeasure_apply hmeas] at hs", "informal": "We're rewriting part of the expression using [ennrealToMeasure_apply." }, { "formal": "exact h hs", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "exact not_measurable v hmeas", "informal": "Here, we provide the exact term not_measurable that solves our current goal." }, { "formal": "simp [condition]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [condition]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "conv_rhs => rw [\u2190 Category.comp_id pullback.fst]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [\u2190 diagonal_fst f, pullback.condition_assoc, pullback.lift_fst]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [two_mul, sinh_add]", "informal": "We're rewriting part of the expression using [two_mul,." }, { "formal": "exact (isCompact_range hf.continuous).finite_of_discrete", "informal": "Here, we provide the exact term (isCompact_range that solves our current goal." }, { "formal": "rw [cycle_eq]", "informal": "We're rewriting part of the expression using [cycle_eq]." }, { "formal": "exact mem_append_stream_left _ ainl", "informal": "Here, we provide the exact term mem_append_stream_left that solves our current goal." }, { "formal": "rw [Finset.disjoint_left]", "informal": "We're rewriting part of the expression using [Finset.disjoint_left]." }, { "formal": "rintro x hx hxc", "informal": "We introduce new variables x." }, { "formal": "exact hs.not_compl_mem hx' hx", "informal": "Here, we provide the exact term hs.not_compl_mem that solves our current goal." }, { "formal": "intro x y h", "informal": "We introduce new variables x." }, { "formal": "by_cases hx : x \u2208 xs <;> by_cases hy : y \u2208 xs", "informal": "We're breaking down the problem into cases based on hx." }, { "formal": "rw [List.mem_iff_get?] at hx hy", "informal": "We're rewriting part of the expression using [List.mem_iff_get?]." }, { "formal": "rw [List.applyId_zip_eq h\u2080 h\u2082 _ _ _ hx] at h", "informal": "We're rewriting part of the expression using [List.applyId_zip_eq." }, { "formal": "rw [\u2190 hx, \u2190 hy]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply List.get?_injective _ (h\u2081.nodup_iff.1 h\u2080)", "informal": "Here, we apply the theorem/lemma List.get?_injective." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "rw [\u2190 List.applyId_zip_eq] <;> assumption", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 h\u2081.length_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [List.get?_eq_some] at hx", "informal": "We're rewriting part of the expression using [List.get?_eq_some]." }, { "formal": "exact hx", "informal": "Here, we provide the exact term hx that solves our current goal." }, { "formal": "rw [\u2190 applyId_mem_iff h\u2080 h\u2081] at hx hy", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [h] at hx", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "contradiction", "informal": "This step shows that our assumptions lead to a contradiction." }, { "formal": "rw [\u2190 applyId_mem_iff h\u2080 h\u2081] at hx hy", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [h] at hx", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "contradiction", "informal": "This step shows that our assumptions lead to a contradiction." }, { "formal": "rw [neg_def]", "informal": "We're rewriting part of the expression using [neg_def]." }, { "formal": "rw [\u2190 g.intervalIntegral_comp_comm f'int, g.map_sub]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact integral_eq_sub_of_hasDeriv_right_of_le_real hab (g.continuous.comp_continuousOn hcont)\n (fun x hx => g.hasFDerivAt.comp_hasDerivWithinAt x (hderiv x hx))\n (g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))", "informal": "Here, we provide the exact term integral_eq_sub_of_hasDeriv_right_of_le_real that solves our current goal." }, { "formal": "rw [\u2190 @iUnion_spanningSets _ m (\u03bc.trim hm)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact ((le_trim hm).trans_lt (@measure_spanningSets_lt_top _ m (\u03bc.trim hm) _ n)).ne", "informal": "Here, we provide the exact term ((le_trim that solves our current goal." }, { "formal": "induction n with\n| zero => simp\n| succ n n_ih =>\n rw [pow_succ', pow_mul, pow_mul, pow_mul, n_ih]\n apply sub_pow_char_of_commute; apply Commute.pow_pow h", "informal": "Here, we apply the theorem/lemma n." }, { "formal": "induction n with\n| zero => simp\n| succ n n_ih =>\n rw [pow_succ', pow_mul, pow_mul, pow_mul, n_ih]\n apply sub_pow_char_of_commute; apply Commute.pow_pow h", "informal": "We're rewriting part of the expression using n." }, { "formal": "rw [pow_succ', pow_mul, pow_mul, pow_mul, n_ih]", "informal": "We're rewriting part of the expression using [pow_succ',." }, { "formal": "apply sub_pow_char_of_commute", "informal": "Here, we apply the theorem/lemma sub_pow_char_of_commute." }, { "formal": "apply Commute.pow_pow h", "informal": "Here, we apply the theorem/lemma Commute.pow_pow." }, { "formal": "rw [\u2190 Ioi_inter_Iic, interior_inter, interior_Ioi, interior_Iic, Ioi_inter_Iio]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [h.bsize, h.next_stop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8fun \u27e8\u27e8_, f', h\u27e9, rfl\u27e9 => by rwa [Subsingleton.elim f f'], fun h => \u27e8\u27e8Z, f, h\u27e9, rfl\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "simp only [hx, Finset.sum_insert, not_false_iff, Finset.sup_insert]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "specialize IH (h.mono fun _ => by simp (config := { contextual := true }))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases lt_trichotomy (degree (f x)) (degree (s.sum f)) with (H | H | H)", "informal": "We're breaking down the problem into cases based on lt_trichotomy." }, { "formal": "simp (config := { contextual := true })", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 IH, sup_eq_right.mpr H.le, degree_add_eq_right_of_degree_lt H]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rcases s.eq_empty_or_nonempty with (rfl | hs)", "informal": "We're breaking down the problem into cases based on s.eq_empty_or_nonempty." }, { "formal": "rw [IH, hy'] at H", "informal": "We're rewriting part of the expression using [IH,." }, { "formal": "by_cases hx0 : f x = 0", "informal": "We're breaking down the problem into cases based on hx0." }, { "formal": "simp [hx0, IH]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hx0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hy, hy0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact H.symm \u25b8 hy", "informal": "Here, we provide the exact term H.symm that solves our current goal." }, { "formal": "rw [\u2190 IH, sup_eq_left.mpr H.le, degree_add_eq_left_of_degree_lt H]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 cthickening_of_nonpos (min_le_right \u03b4 0)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact cthickening_mono (min_le_left \u03b4 0) E", "informal": "Here, we provide the exact term cthickening_mono that solves our current goal." }, { "formal": "rw [Finsupp.zero_apply]", "informal": "We're rewriting part of the expression using [Finsupp.zero_apply]." }, { "formal": "rw [modOf_apply_self_add]", "informal": "We're rewriting part of the expression using [modOf_apply_self_add]." }, { "formal": "rw [modOf_apply_of_not_exists_add _ _ _ h, of'_apply, mul_single_apply_of_not_exists_add]", "informal": "We're rewriting part of the expression using [modOf_apply_of_not_exists_add." }, { "formal": "rw [sInter_eq_biInter, preimage_iInter\u2082]", "informal": "We're rewriting part of the expression using [sInter_eq_biInter,." }, { "formal": "simp [dist_eq, le_abs_self]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [basisSpanSingleton, Basis.map_apply, LinearEquiv.trans_apply,\n Submodule.restrictScalarsEquiv_apply, LinearEquiv.ofInjective_apply, LinearEquiv.coe_ofEq_apply,\n LinearEquiv.restrictScalars_apply, Algebra.coe_lmul_eq_mul, LinearMap.mul_apply']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [LinearEquiv.coe_ofEq_apply, LinearEquiv.ofInjective_apply, Algebra.coe_lmul_eq_mul,\n LinearMap.mul_apply']", "informal": "We're rewriting part of the expression using [LinearEquiv.coe_ofEq_apply,." }, { "formal": "cases n", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "rw [norm_mkPiAlgebraFin_zero]", "informal": "We're rewriting part of the expression using [norm_mkPiAlgebraFin_zero]." }, { "formal": "rw [\u2190 compl_compl s, \u2190 biUnion_of_singleton s\u1d9c, compl_iUnion\u2082, Filter.biInter_mem hs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact fun x _ => h x", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [vsub_vadd, \u2190 h, vsub_vadd]", "informal": "We're rewriting part of the expression using [vsub_vadd,." }, { "formal": "apply neg_dotProduct", "informal": "Here, we apply the theorem/lemma neg_dotProduct." }, { "formal": "cases n <;> rfl", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "rw [neg_eq_neg_one_mul, mul_div_assoc, \u2190 neg_eq_neg_one_mul]", "informal": "We're rewriting part of the expression using [neg_eq_neg_one_mul,." }, { "formal": "simp_rw [mem_rightTransversals_iff_existsUnique_mul_inv_mem, SetLike.mem_coe, \u2190\n QuotientGroup.rightRel_apply, \u2190 Quotient.eq'']", "informal": "We're rewriting part of the expression using [mem_rightTransversals_iff_existsUnique_mul_inv_mem,." }, { "formal": "exact \u27e8fun h q => Quotient.inductionOn' q h, fun h g => h (Quotient.mk'' g)\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "exact \u27e8c, inl_lt_inl_iff.1 ha, inl_lt_inl_iff.1 hb\u27e9", "informal": "Here, we provide the exact term \u27e8c, that solves our current goal." }, { "formal": "exact (not_inl_lt_inr ha).elim", "informal": "Here, we provide the exact term (not_inl_lt_inr that solves our current goal." }, { "formal": "exact (not_inl_lt_inr hb).elim", "informal": "Here, we provide the exact term (not_inl_lt_inr that solves our current goal." }, { "formal": "exact \u27e8c, inr_lt_inr_iff.1 ha, inr_lt_inr_iff.1 hb\u27e9", "informal": "Here, we provide the exact term \u27e8c, that solves our current goal." }, { "formal": "rw [uniformity_setCoe, map_comap, range_prod_map, Subtype.range_val]", "informal": "We're rewriting part of the expression using [uniformity_setCoe,." }, { "formal": "cases x", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "exact nhds_prod_eq", "informal": "Here, we provide the exact term nhds_prod_eq that solves our current goal." }, { "formal": "rw [inv_mul_lt_iff h, mul_comm]", "informal": "We're rewriting part of the expression using [inv_mul_lt_iff." }, { "formal": "rw [inverse, Submodule.toLinearPMap_range _ (mem_inverse_graph_snd_eq_zero hf),\n \u2190 graph_map_fst_eq_domain, \u2190 LinearEquiv.snd_comp_prodComm, Submodule.map_comp]", "informal": "We're rewriting part of the expression using [inverse,." }, { "formal": "simp [norm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 LinearEquiv.coe_toLinearMap, lTensorHomEquivHomLTensor_toLinearMap]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [\u2190 disjoint_coe, coe_toFinset]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [dual_Ico, dual_Ioi, dual_Ioo] at this", "informal": "We're rewriting part of the expression using [dual_Ico,." }, { "formal": "exact this hf hb", "informal": "Here, we provide the exact term this that solves our current goal." }, { "formal": "rw [disjoint_iff_inf_le, disjoint_iff_inf_le, inf_assoc]", "informal": "We're rewriting part of the expression using [disjoint_iff_inf_le,." }, { "formal": "rw [\u2190 two_pi_I_inv_smul_circleIntegral_sub_inv_smul_of_differentiable_on_off_countable\n hs hw hc hd, smul_inv_smul\u2080]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [Real.pi_ne_zero, I_ne_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [div_eq_mul_inv, \u2190 inv_inf_eq_sup_inv]", "informal": "We're rewriting part of the expression using [div_eq_mul_inv,." }, { "formal": "rw [mul_sup, sup_mul, sup_mul]", "informal": "We're rewriting part of the expression using [mul_sup,." }, { "formal": "rw [mul_right_inv, mul_right_inv, \u2190div_eq_mul_inv, \u2190div_eq_mul_inv]", "informal": "We're rewriting part of the expression using [mul_right_inv,." }, { "formal": "rw [one_div_div]", "informal": "We're rewriting part of the expression using [one_div_div]." }, { "formal": "rw [inv_eq_one_div]", "informal": "We're rewriting part of the expression using [inv_eq_one_div]." }, { "formal": "rw [sup_assoc, sup_assoc]", "informal": "We're rewriting part of the expression using [sup_assoc,." }, { "formal": "rw [abs_eq_sup_inv]", "informal": "We're rewriting part of the expression using [abs_eq_sup_inv]." }, { "formal": "rw [\u2190 m_pos_part_def, m_pos_abs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sup_comm]", "informal": "We're rewriting part of the expression using [sup_comm]." }, { "formal": "rw [\u2190 m_pos_part_def, m_pos_abs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rw [max_eq_right_of_lt h, min_eq_left_of_lt h, dist_eq_sub_of_le (Nat.le_of_lt h)]", "informal": "We're rewriting part of the expression using [max_eq_right_of_lt." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rw [max_eq_left h, min_eq_right h, dist_eq_sub_of_le_right h]", "informal": "We're rewriting part of the expression using [max_eq_left." }, { "formal": "simp [H.symm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [H]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [sub_eq_add_neg, sub_eq_add_neg, polar_add_right, polar_neg_right]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg,." }, { "formal": "rw [W_succ]", "informal": "We're rewriting part of the expression using [W_succ]." }, { "formal": "have hp0 : p \u2260 0 := fun hp0 => by simp [hp0] at hp", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hr0 : r \u2260 0 := fun hr0 => by subst hr0; simp [hq] at hr", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hpn1 : leadingCoeff p ^ (natDegree q + 1) = 1 := by simp [show _ = _ from hmp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hpnr0 : leadingCoeff (p ^ (natDegree q + 1)) * leadingCoeff r \u2260 0 := by\n simp only [leadingCoeff_pow' hpn0', leadingCoeff_eq_zero, hpn1, one_pow, one_mul, Ne.def,\n hr0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hnp : 0 < natDegree p := Nat.cast_lt.1 <| by\n rw [\u2190 degree_eq_natDegree hp0]; exact hp", "informal": "We're rewriting part of the expression using hnp." }, { "formal": "have hnp : 0 < natDegree p := Nat.cast_lt.1 <| by\n rw [\u2190 degree_eq_natDegree hp0]; exact hp", "informal": "Here, we provide the exact term hnp that solves our current goal." }, { "formal": "rw [natDegree_mul' hpnr0, natDegree_pow' hpn0', add_mul, add_assoc] at this", "informal": "We're rewriting part of the expression using [natDegree_mul'." }, { "formal": "simp [hp0] at hp", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hq] at hr", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [show _ = _ from hmp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [leadingCoeff_pow' hpn0', leadingCoeff_eq_zero, hpn1, one_pow, one_mul, Ne.def,\n hr0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 degree_eq_natDegree hp0]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact hp", "informal": "Here, we provide the exact term hp that solves our current goal." }, { "formal": "simp_rw [ContMDiffOn, Set.ball_image_iff]", "informal": "We're rewriting part of the expression using [ContMDiffOn,." }, { "formal": "rw [contMDiffWithinAt_iff_source_of_mem_maximalAtlas he (hs hx)]", "informal": "We're rewriting part of the expression using [contMDiffWithinAt_iff_source_of_mem_maximalAtlas." }, { "formal": "apply contMDiffWithinAt_congr_nhds", "informal": "Here, we apply the theorem/lemma contMDiffWithinAt_congr_nhds." }, { "formal": "simp_rw [nhdsWithin_eq_iff_eventuallyEq,\n e.extend_symm_preimage_inter_range_eventuallyEq I hs (hs hx)]", "informal": "We're rewriting part of the expression using [nhdsWithin_eq_iff_eventuallyEq,." }, { "formal": "exact Subsingleton.elim _ _", "informal": "Here, we provide the exact term Subsingleton.elim that solves our current goal." }, { "formal": "simp_rw [sigmaLift]", "informal": "We're rewriting part of the expression using [sigmaLift]." }, { "formal": "split_ifs with h <;> simp [h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [update_noteq]", "informal": "We're rewriting part of the expression using [update_noteq]." }, { "formal": "exact fun h => hi (h \u25b8 hj)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "exact (irrefl_of r a <| chain_iff_pairwise.1 h a ha a ha).elim", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "exact (irrefl_of r a <| chain_iff_pairwise.1 h a ha a ha).elim", "informal": "Here, we provide the exact term (irrefl_of that solves our current goal." }, { "formal": "cases' le_total a b with hab hab <;>\n simp only [Ioc_eq_empty hab.not_lt, empty_union, union_empty] at hf \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact integral_eq_zero_iff_of_le_of_nonneg_ae hab hf hfi", "informal": "Here, we provide the exact term integral_eq_zero_iff_of_le_of_nonneg_ae that solves our current goal." }, { "formal": "rw [integral_symm, neg_eq_zero, integral_eq_zero_iff_of_le_of_nonneg_ae hab hf hfi.symm]", "informal": "We're rewriting part of the expression using [integral_symm,." }, { "formal": "rcases l with (_ | \u27e8hd, _ | \u27e8hd', tl\u27e9\u27e9)", "informal": "We're breaking down the problem into cases based on l." }, { "formal": "simp at hx", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [mem_coe_iff, mk_eq_coe, mem_singleton] at hx hy", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hx, hy] at hxy", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Nat.succ_le_succ_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : \u2203 n : \u2115, Set.Nonempty (H \u2229 Ioc (n \u2022 a) ((n + 1) \u2022 a)) := by\n rcases (bot_or_exists_ne_zero H).resolve_left hbot with \u27e8g, hgH, hg\u2080\u27e9\n rcases hex |g| (abs_pos.2 hg\u2080) with \u27e8n, hn\u27e9\n exact \u27e8n, _, (@abs_mem_iff (AddSubgroup G) G _ _).2 hgH, hn\u27e9", "informal": "We're breaking down the problem into cases based on :." }, { "formal": "have : \u2203 n : \u2115, Set.Nonempty (H \u2229 Ioc (n \u2022 a) ((n + 1) \u2022 a)) := by\n rcases (bot_or_exists_ne_zero H).resolve_left hbot with \u27e8g, hgH, hg\u2080\u27e9\n rcases hex |g| (abs_pos.2 hg\u2080) with \u27e8n, hn\u27e9\n exact \u27e8n, _, (@abs_mem_iff (AddSubgroup G) G _ _).2 hgH, hn\u27e9", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "classical rcases Nat.findX this with \u27e8n, \u27e8x, hxH, hnx, hxn\u27e9, hmin\u27e9", "informal": "We're breaking down the problem into cases based on rcases." }, { "formal": "simp only [IsLeast, not_and, mem_setOf_eq, mem_lowerBounds, not_exists, not_forall,\n not_le] at hxmin", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases hxmin x \u27e8hxH, (nsmul_nonneg h\u2080.le _).trans_lt hnx\u27e9 with \u27e8y, \u27e8hyH, hy\u2080\u27e9, hxy\u27e9", "informal": "We're breaking down the problem into cases based on hxmin." }, { "formal": "rcases hex y hy\u2080 with \u27e8m, hm\u27e9", "informal": "We're breaking down the problem into cases based on hex." }, { "formal": "rcases existsUnique_add_zsmul_mem_Ico h\u2080 0 (g - a) with \u27e8m, \u27e8hm, hm'\u27e9, -\u27e9", "informal": "We're breaking down the problem into cases based on existsUnique_add_zsmul_mem_Ico." }, { "formal": "simp only [zero_add, sub_le_iff_le_add, sub_add_cancel, \u2190 add_one_zsmul] at hm hm'", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Int.lt_add_one_iff, \u2190 zsmul_lt_zsmul_iff h\u2080, zero_zsmul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact hg.trans_le hm", "informal": "Here, we provide the exact term hg.trans_le that solves our current goal." }, { "formal": "simp only [\u2190 Nat.cast_succ, coe_nat_zsmul] at hm hm'", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8m, hm', hm\u27e9", "informal": "Here, we provide the exact term \u27e8m, that solves our current goal." }, { "formal": "rcases (bot_or_exists_ne_zero H).resolve_left hbot with \u27e8g, hgH, hg\u2080\u27e9", "informal": "We're breaking down the problem into cases based on (bot_or_exists_ne_zero." }, { "formal": "rcases hex |g| (abs_pos.2 hg\u2080) with \u27e8n, hn\u27e9", "informal": "We're breaking down the problem into cases based on hex." }, { "formal": "exact \u27e8n, _, (@abs_mem_iff (AddSubgroup G) G _ _).2 hgH, hn\u27e9", "informal": "Here, we provide the exact term \u27e8n, that solves our current goal." }, { "formal": "rcases Nat.findX this with \u27e8n, \u27e8x, hxH, hnx, hxn\u27e9, hmin\u27e9", "informal": "We're breaking down the problem into cases based on Nat.findX." }, { "formal": "exact hmin m hmn \u27e8y, hyH, hm\u27e9", "informal": "Here, we provide the exact term hmin that solves our current goal." }, { "formal": "simp only [Theory.fieldOfChar, Theory.model_union_iff,\n (show (Theory.field.Model K) by infer_instance), true_and]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Theory.model_iff, Set.mem_image, Set.mem_setOf_eq, Sentence.Realize,\n forall_exists_index, and_imp, forall_apply_eq_imp_iff\u2082, Formula.realize_not,\n realize_eqZero, \u2190 CharZero.charZero_iff_forall_prime_ne_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8fun _ => CharP.ofCharZero _, fun _ => CharP.charP_to_charZero K\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "simp only [Theory.model_iff, Set.mem_singleton_iff, Sentence.Realize, forall_eq,\n realize_eqZero, \u2190 CharP.charP_iff_prime_eq_zero hp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Theory.model_iff, Set.mem_singleton_iff, Sentence.Realize,\n forall_eq, Formula.realize_bot, false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro H", "informal": "We introduce new variables H." }, { "formal": "cases (CharP.char_is_prime_or_zero K p) <;> simp_all", "informal": "We're breaking down the problem into cases based on (CharP.char_is_prime_or_zero." }, { "formal": "simp_rw [\u2190 contDiffOn_univ, contDiffOn_clm_apply]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "induction l <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply eq_lift_of_comp_eq", "informal": "Here, we apply the theorem/lemma eq_lift_of_comp_eq." }, { "formal": "rintro _ \u27e8b, hb, rfl\u27e9 _ \u27e8c, hc, rfl\u27e9 hbc hr", "informal": "We introduce new variables _." }, { "formal": "exact hs hb hc (ne_of_apply_ne _ hbc) (h hr)", "informal": "Here, we provide the exact term hs that solves our current goal." }, { "formal": "rw [add_left_comm, dist_comm x\u2081, \u2190 add_assoc]", "informal": "We're rewriting part of the expression using [add_left_comm,." }, { "formal": "apply dist_triangle4", "informal": "Here, we apply the theorem/lemma dist_triangle4." }, { "formal": "rw [(@map_nhds_subtype_coe_eq_nhds \u03b1 _ s a (mem_of_mem_nhds ha) ha).symm]", "informal": "We're rewriting part of the expression using [(@map_nhds_subtype_coe_eq_nhds." }, { "formal": "exact tendsto_map' hf.continuous.continuousAt", "informal": "Here, we provide the exact term tendsto_map' that solves our current goal." }, { "formal": "simp [apply_ite conj]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [divp_mul_cancel, one_mul]", "informal": "We're rewriting part of the expression using [divp_mul_cancel,." }, { "formal": "rw [sub_eq_add_neg]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg]." }, { "formal": "rw [round_add_int, sub_eq_add_neg]", "informal": "We're rewriting part of the expression using [round_add_int,." }, { "formal": "erw [Nat.add_succ, prod_range_succ, prod_range_succ, hm, mul_assoc]", "informal": "We're rewriting part of the expression using [Nat.add_succ,." }, { "formal": "apply Option.map_eq_bind", "informal": "Here, we apply the theorem/lemma Option.map_eq_bind." }, { "formal": "rw [disjointed_succ, hf.partialSups_eq]", "informal": "We're rewriting part of the expression using [disjointed_succ,." }, { "formal": "exact ha.isMax", "informal": "Here, we provide the exact term ha.isMax that solves our current goal." }, { "formal": "rw [\u2190 WithBot.coe_eq_coe, coe_sup', sup_map, coe_sup']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 map_equiv_eq_comap_symm, map_op_one]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [choose]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [choose, mul_succ, succ_eq_add_one, add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [choose_succ_succ (succ n) (succ k), add_mul, \u2190 succ_mul_choose_eq n, mul_succ, \u2190\n succ_mul_choose_eq n, add_right_comm, \u2190 mul_add, \u2190 choose_succ_succ, \u2190 succ_mul]", "informal": "We're rewriting part of the expression using [choose_succ_succ." }, { "formal": "exact\n this.mono fun x hx => by\n dsimp only\n rw [rpow_def_of_pos hx]", "informal": "We're rewriting part of the expression using this.mono." }, { "formal": "exact\n this.mono fun x hx => by\n dsimp only\n rw [rpow_def_of_pos hx]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact IsOpen.eventually_mem (isOpen_lt continuous_const continuous_fst) hp_fst", "informal": "Here, we provide the exact term IsOpen.eventually_mem that solves our current goal." }, { "formal": "dsimp only", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [rpow_def_of_pos hx]", "informal": "We're rewriting part of the expression using [rpow_def_of_pos." }, { "formal": "simp only [mulIndicator]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "split_ifs <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [exp_eq_tsum, transpose_tsum, transpose_smul, transpose_pow]", "informal": "We're rewriting part of the expression using [exp_eq_tsum,." }, { "formal": "rcases G.odd_card_odd_degree_vertices_ne v h with \u27e8k, hg\u27e9", "informal": "We're breaking down the problem into cases based on G.odd_card_odd_degree_vertices_ne." }, { "formal": "have hg' : (filter (fun w : V => w \u2260 v \u2227 Odd (G.degree w)) univ).card > 0 := by\n rw [hg]\n apply Nat.succ_pos", "informal": "Here, we apply the theorem/lemma hg'." }, { "formal": "have hg' : (filter (fun w : V => w \u2260 v \u2227 Odd (G.degree w)) univ).card > 0 := by\n rw [hg]\n apply Nat.succ_pos", "informal": "We're rewriting part of the expression using hg'." }, { "formal": "rcases card_pos.mp hg' with \u27e8w, hw\u27e9", "informal": "We're breaking down the problem into cases based on card_pos.mp." }, { "formal": "simp only [true_and_iff, mem_filter, mem_univ, Ne.def] at hw", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8w, hw\u27e9", "informal": "Here, we provide the exact term \u27e8w, that solves our current goal." }, { "formal": "rw [hg]", "informal": "We're rewriting part of the expression using [hg]." }, { "formal": "apply Nat.succ_pos", "informal": "Here, we apply the theorem/lemma Nat.succ_pos." }, { "formal": "rw [\u2190 tensor_comp, IsIso.inv_hom_id, comp_tensor_id]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [IsBigOWith_def, \u2190 div_eq_inv_mul, le_div_iff' hc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [mem_ordConnectedComponent, mem_ordConnectedComponent, uIcc_comm]", "informal": "We're rewriting part of the expression using [mem_ordConnectedComponent,." }, { "formal": "rcases o with (ae | \u27e8yz, x0\u27e9)", "informal": "We're breaking down the problem into cases based on o." }, { "formal": "rw [ae, add_tsub_cancel_right]", "informal": "We're rewriting part of the expression using [ae,." }, { "formal": "rw [x0, tsub_eq_zero_iff_le.mpr yz]", "informal": "We're rewriting part of the expression using [x0,." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "exact Or.inr \u27e8yz, tsub_eq_zero_iff_le.mpr yz\u27e9", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "exact Or.inl (tsub_add_cancel_of_le zy).symm", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "simp only [mem_coclosedCompact, compl_subset_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [EquicontinuousAt, ContinuousAt, (nhds_basis_uniformity' (\ud835\udce4 \u03b1).basis_sets).tendsto_right_iff,\n UniformSpace.ball, @forall_swap _ \u03b9]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Ici, \u2190 Finset.mem_def, Finset.mem_Ici]", "informal": "We're rewriting part of the expression using [Ici,." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "simp only [Nat.cast_zero, hasFTaylorSeriesUpToOn_zero_iff] at hp", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact hp.1.mono (inter_subset_right s u)", "informal": "Here, we provide the exact term hp.1.mono that solves our current goal." }, { "formal": "rintro \u27e8u, H, hu\u27e9", "informal": "We introduce new variables \u27e8u,." }, { "formal": "rw [\u2190 contDiffWithinAt_inter' H]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (contDiffOn_zero.mpr hu).contDiffWithinAt h'", "informal": "Here, we provide the exact term (contDiffOn_zero.mpr that solves our current goal." }, { "formal": "simp only [nmul_comm _ (_ \u2a33 _)]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [nadd_eq_add, NatOrdinal.toOrdinal_toNatOrdinal]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [padicValNat.pow _ (@Fact.out p.Prime).ne_zero, padicValNat_self, mul_one]", "informal": "We're rewriting part of the expression using [padicValNat.pow." }, { "formal": "simp only [character, map_one, trace_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [lipschitzWith_iff_dist_le_mul, dist_eq_norm_div]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [eq_neg_iff_add_eq_zero, add_comm, \u2190 sum_range_succ, \u2190 Nat.succ_eq_add_one,\n Nat.succ_pred_eq_of_pos (pos_of_gt hk), h\u03b6.geom_sum_eq_zero hk]", "informal": "We're rewriting part of the expression using [eq_neg_iff_add_eq_zero,." }, { "formal": "classical exact hs.piecewise_eventually_eq_iInter f 1 a", "informal": "Here, we provide the exact term exact that solves our current goal." }, { "formal": "exact hs.piecewise_eventually_eq_iInter f 1 a", "informal": "Here, we provide the exact term hs.piecewise_eventually_eq_iInter that solves our current goal." }, { "formal": "induction x using WithTop.recTopCoe <;> simp [\u2190 coe_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 cast_one, cast_lt]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [Set.disjoint_iff_inter_eq_empty, Ici_inter_Iic, Icc_eq_empty_iff]", "informal": "We're rewriting part of the expression using [Set.disjoint_iff_inter_eq_empty,." }, { "formal": "erw [FdRep.isoToLinearEquiv, \u2190 FGModuleCat.Iso.conj_eq_conj, Iso.conj_apply]", "informal": "We're rewriting part of the expression using [FdRep.isoToLinearEquiv,." }, { "formal": "rw [Iso.eq_inv_comp ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i)]", "informal": "We're rewriting part of the expression using [Iso.eq_inv_comp." }, { "formal": "exact (i.hom.comm g).symm", "informal": "Here, we provide the exact term (i.hom.comm that solves our current goal." }, { "formal": "rw [\u2190 pullback.condition_assoc, Category.assoc, p_comm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply ((gluing \ud835\udcb0 f g).openCover.pullbackCover pullback.fst).hom_ext", "informal": "Here, we apply the theorem/lemma ((gluing." }, { "formal": "intro j", "informal": "We introduce new variables j." }, { "formal": "dsimp only [OpenCover.pullbackCover]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 show _ = fV \ud835\udcb0 f g j i \u226b _ from (gluing \ud835\udcb0 f g).glue_condition j i]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp_rw [\u2190 Category.assoc]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [gluing_f, gluing_t]", "informal": "We're rewriting part of the expression using [gluing_f,." }, { "formal": "apply pullback.hom_ext <;> simp_rw [Category.assoc]", "informal": "Here, we apply the theorem/lemma pullback.hom_ext." }, { "formal": "apply pullback.hom_ext <;> simp_rw [Category.assoc]", "informal": "We're rewriting part of the expression using pullback.hom_ext." }, { "formal": "rw [t_fst_fst, pullback.lift_fst, pullbackFst\u03b9ToV_snd]", "informal": "We're rewriting part of the expression using [t_fst_fst,." }, { "formal": "rw [t_fst_snd, pullback.lift_snd, pullbackFst\u03b9ToV_fst_assoc, pullback.condition_assoc]", "informal": "We're rewriting part of the expression using [t_fst_snd,." }, { "formal": "erw [Multicoequalizer.\u03c0_desc]", "informal": "We're rewriting part of the expression using [Multicoequalizer.\u03c0_desc]." }, { "formal": "rw [pullback.condition, \u2190 Category.assoc]", "informal": "We're rewriting part of the expression using [pullback.condition,." }, { "formal": "apply pullback.hom_ext", "informal": "Here, we apply the theorem/lemma pullback.hom_ext." }, { "formal": "simp only [pullbackFst\u03b9ToV_fst]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [pullbackFst\u03b9ToV_fst]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Set.image_univ.trans Subtype.range_coe", "informal": "Here, we provide the exact term Set.image_univ.trans that solves our current goal." }, { "formal": "simp only [sSup_eq_iSup', mem_iSup_of_directed hS.directed_val, Subtype.exists, exists_prop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases s with\n| none => rfl\n| some s\u2080 => exact NonemptyInterval.coe_dual s\u2080", "informal": "We're breaking down the problem into cases based on s." }, { "formal": "cases s with\n| none => rfl\n| some s\u2080 => exact NonemptyInterval.coe_dual s\u2080", "informal": "Here, we provide the exact term s that solves our current goal." }, { "formal": "exact NonemptyInterval.coe_dual s\u2080", "informal": "Here, we provide the exact term NonemptyInterval.coe_dual that solves our current goal." }, { "formal": "exact y.eq_zero_or_pos.elim\n (fun y0 => by\n rw [y0, Nat.div_zero]\n exact \u27e8fun o => (o.resolve_right fun \u27e8_, h2\u27e9 => Nat.not_lt_zero _ h2).right,\n fun z0 => Or.inl \u27e8rfl, z0\u27e9\u27e9)\n fun ypos =>\n Iff.trans \u27e8fun o => o.resolve_left fun \u27e8h1, _\u27e9 => Nat.ne_of_gt ypos h1, Or.inr\u27e9\n (le_antisymm_iff.trans <| and_congr (Nat.le_div_iff_mul_le ypos) <|\n Iff.trans \u27e8lt_succ_of_le, le_of_lt_succ\u27e9 (div_lt_iff_lt_mul ypos)).symm", "informal": "We're rewriting part of the expression using y.eq_zero_or_pos.elim." }, { "formal": "exact y.eq_zero_or_pos.elim\n (fun y0 => by\n rw [y0, Nat.div_zero]\n exact \u27e8fun o => (o.resolve_right fun \u27e8_, h2\u27e9 => Nat.not_lt_zero _ h2).right,\n fun z0 => Or.inl \u27e8rfl, z0\u27e9\u27e9)\n fun ypos =>\n Iff.trans \u27e8fun o => o.resolve_left fun \u27e8h1, _\u27e9 => Nat.ne_of_gt ypos h1, Or.inr\u27e9\n (le_antisymm_iff.trans <| and_congr (Nat.le_div_iff_mul_le ypos) <|\n Iff.trans \u27e8lt_succ_of_le, le_of_lt_succ\u27e9 (div_lt_iff_lt_mul ypos)).symm", "informal": "Here, we provide the exact term y.eq_zero_or_pos.elim that solves our current goal." }, { "formal": "rw [y0, Nat.div_zero]", "informal": "We're rewriting part of the expression using [y0,." }, { "formal": "exact \u27e8fun o => (o.resolve_right fun \u27e8_, h2\u27e9 => Nat.not_lt_zero _ h2).right,\n fun z0 => Or.inl \u27e8rfl, z0\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "rw [zero_mul q]", "informal": "We're rewriting part of the expression using [zero_mul." }, { "formal": "apply AddSubgroup.zero_mem _", "informal": "Here, we apply the theorem/lemma AddSubgroup.zero_mem." }, { "formal": "rw [add_mul p\u2081 p\u2082 q]", "informal": "We're rewriting part of the expression using [add_mul." }, { "formal": "apply AddSubgroup.add_mem _ ihp\u2081 ihp\u2082", "informal": "Here, we apply the theorem/lemma AddSubgroup.add_mem." }, { "formal": "rw [f]", "informal": "We're rewriting part of the expression using [f]." }, { "formal": "apply AddSubgroup.neg_mem _ hx", "informal": "Here, we apply the theorem/lemma AddSubgroup.neg_mem." }, { "formal": "rw [mul_zero x]", "informal": "We're rewriting part of the expression using [mul_zero." }, { "formal": "apply AddSubgroup.zero_mem _", "informal": "Here, we apply the theorem/lemma AddSubgroup.zero_mem." }, { "formal": "rw [mul_add x q\u2081 q\u2082]", "informal": "We're rewriting part of the expression using [mul_add." }, { "formal": "apply AddSubgroup.add_mem _ ihq\u2081 ihq\u2082", "informal": "Here, we apply the theorem/lemma AddSubgroup.add_mem." }, { "formal": "rw [f]", "informal": "We're rewriting part of the expression using [f]." }, { "formal": "apply AddSubgroup.neg_mem _ hz", "informal": "Here, we apply the theorem/lemma AddSubgroup.neg_mem." }, { "formal": "rw [equicontinuousAt_iff_pair]", "informal": "We're rewriting part of the expression using [equicontinuousAt_iff_pair]." }, { "formal": "constructor <;> intro H", "informal": "We introduce new variables <;>." }, { "formal": "intro \u03b5 h\u03b5", "informal": "We introduce new variables \u03b5." }, { "formal": "exact H _ (dist_mem_uniformity h\u03b5)", "informal": "Here, we provide the exact term H that solves our current goal." }, { "formal": "intro U hU", "informal": "We introduce new variables U." }, { "formal": "rcases mem_uniformity_dist.mp hU with \u27e8\u03b5, h\u03b5, h\u03b5U\u27e9", "informal": "We're breaking down the problem into cases based on mem_uniformity_dist.mp." }, { "formal": "exact fun x hx x' hx' i => h\u03b5U (h _ hx _ hx' i)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "exact p.nil_eq", "informal": "Here, we provide the exact term p.nil_eq that solves our current goal." }, { "formal": "rcases mem_split this with \u27e8u\u2082, v\u2082, rfl\u27e9", "informal": "We're breaking down the problem into cases based on mem_split." }, { "formal": "rw [\u2190 append_assoc]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have : \u2200 (x : \u03b1) (_ : x \u2208 u\u2082), x = a := fun x m =>\n antisymm ((pairwise_append.1 s\u2082).2.2 _ m a (mem_cons_self _ _)) (h\u2081 _ (by simp [m]))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [(@eq_replicate _ a (length u\u2082 + 1) (a :: u\u2082)).2,\n (@eq_replicate _ a (length u\u2082 + 1) (u\u2082 ++ [a])).2] <;>\n constructor <;>\n simp [iff_true_intro this, or_comm]", "informal": "We're rewriting part of the expression using [(@eq_replicate." }, { "formal": "rw [(@eq_replicate _ a (length u\u2082 + 1) (a :: u\u2082)).2,\n (@eq_replicate _ a (length u\u2082 + 1) (u\u2082 ++ [a])).2] <;>\n constructor <;>\n simp [iff_true_intro this, or_comm]", "informal": "We introduce new variables [(@eq_replicate." }, { "formal": "rw [(@eq_replicate _ a (length u\u2082 + 1) (a :: u\u2082)).2,\n (@eq_replicate _ a (length u\u2082 + 1) (u\u2082 ++ [a])).2] <;>\n constructor <;>\n simp [iff_true_intro this, or_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [m]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases eq_or_ne a \u221e with rfl | ha", "informal": "We're breaking down the problem into cases based on eq_or_ne." }, { "formal": "exact toReal_nonneg", "informal": "Here, we provide the exact term toReal_nonneg that solves our current goal." }, { "formal": "exact toReal_mono (mt ht ha) h", "informal": "Here, we provide the exact term toReal_mono that solves our current goal." }, { "formal": "simp only [\u2190 Subtype.preimage_coe_eq_preimage_coe_iff,\n ht.isOpenMap_subtype_val.preimage_frontier_eq_frontier_preimage continuous_subtype_val,\n Subtype.preimage_coe_inter_self]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 lift_id #\u03b2, \u2190 lift_umax, \u2190 lift_umax.{u, v}, lift_mk_le.{v}]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact fun \u27e8f\u27e9 =>\n \u27e8#(Set.range f),\n Eq.symm <| lift_mk_eq.{_, _, v}.2\n \u27e8Function.Embedding.equivOfSurjective (Embedding.codRestrict _ f Set.mem_range_self)\n fun \u27e8a, \u27e8b, e\u27e9\u27e9 => \u27e8b, Subtype.eq e\u27e9\u27e9\u27e9", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [ENNReal.coe_mul, mul_assoc]", "informal": "We're rewriting part of the expression using [ENNReal.coe_mul,." }, { "formal": "rw [\u2190 Equiv.Perm.mul_apply, \u2190 Equiv.Perm.mul_apply, zpow_mul_comm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sub_eq_add_neg, \u2190 map_neg C c, nextCoeff_X_add_C]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg,." }, { "formal": "rw [\u2190 coe_nat, Nat.cast_tsub, coe_sub, coe_nat, coe_nat]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 prod_hom, map_map]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have : c.blocks.take c.length = c.blocks := take_all_of_le (by simp [blocks])", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 this, c.blocks_partial_sum c.length_lt_card_boundaries, c.boundary_length]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [blocks]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply JoinedIn.ofLine A.continuousOn (by simp) (by simp)", "informal": "Here, we apply the theorem/lemma JoinedIn.ofLine." }, { "formal": "rw [segment_eq_image \u211d x y]", "informal": "We're rewriting part of the expression using [segment_eq_image." }, { "formal": "rw [Monic.def, leadingCoeff_comp h, Monic.def.1 hp, Monic.def.1 hq, one_pow, one_mul]", "informal": "We're rewriting part of the expression using [Monic.def,." }, { "formal": "rw [\u2190 neg_eq_zero, \u2190 inner_neg_right] at h", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 neg_ne_zero] at h0", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sub_eq_add_neg, \u2190 norm_neg, norm_div_sin_angle_add_of_inner_eq_zero h h0]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg,." }, { "formal": "have :\n (\ud835\udcdd c).HasBasis (fun _ : SmoothBumpFunction I c => True) fun f =>\n (extChartAt I c).symm '' (closedBall (extChartAt I c c) f.rOut \u2229 range I) := by\n rw [\u2190 map_extChartAt_symm_nhdsWithin_range I c]\n exact nhdsWithin_range_basis.map _", "informal": "We're rewriting part of the expression using :." }, { "formal": "have :\n (\ud835\udcdd c).HasBasis (fun _ : SmoothBumpFunction I c => True) fun f =>\n (extChartAt I c).symm '' (closedBall (extChartAt I c c) f.rOut \u2229 range I) := by\n rw [\u2190 map_extChartAt_symm_nhdsWithin_range I c]\n exact nhdsWithin_range_basis.map _", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "rw [\u2190 map_extChartAt_symm_nhdsWithin_range I c]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact nhdsWithin_range_basis.map _", "informal": "Here, we provide the exact term nhdsWithin_range_basis.map that solves our current goal." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "apply irrefl _ h", "informal": "Here, we apply the theorem/lemma irrefl." }, { "formal": "apply irrefl _ h", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "intro A B", "informal": "We introduce new variables A." }, { "formal": "rw [\u2190 sdiff_lt_sdiff_iff_lt, Colex.lt_def]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rintro \u27e8k, z, kA, kB\u27e9", "informal": "We introduce new variables \u27e8k,." }, { "formal": "rw [\u2190 sdiff_union_inter A B]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "conv_rhs => rw [\u2190 sdiff_union_inter B A]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [sum_union (disjoint_sdiff_inter _ _), sum_union (disjoint_sdiff_inter _ _), inter_comm,\n add_lt_add_iff_right]", "informal": "We're rewriting part of the expression using [sum_union." }, { "formal": "apply lt_of_lt_of_le (@Nat.sum_two_pow_lt k (A \\ B) _)", "informal": "Here, we apply the theorem/lemma lt_of_lt_of_le." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "apply lt_of_le_of_ne (le_of_not_lt _)", "informal": "Here, we apply the theorem/lemma lt_of_le_of_ne." }, { "formal": "intro kx", "informal": "We introduce new variables kx." }, { "formal": "rw [mem_sdiff] at this hx", "informal": "We're rewriting part of the expression using [mem_sdiff]." }, { "formal": "exact hx.2 this.1", "informal": "Here, we provide the exact term hx.2 that solves our current goal." }, { "formal": "apply single_le_sum (fun _ _ => Nat.zero_le _) kB", "informal": "Here, we apply the theorem/lemma single_le_sum." }, { "formal": "apply ne_of_mem_of_not_mem hx kA", "informal": "Here, we apply the theorem/lemma ne_of_mem_of_not_mem." }, { "formal": "simp [MvPowerSeries.X]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases a <;> rfl", "informal": "We're breaking down the problem into cases based on a." }, { "formal": "apply le_of_not_gt", "informal": "Here, we apply the theorem/lemma le_of_not_gt." }, { "formal": "intro l", "informal": "We introduce new variables l." }, { "formal": "simp only [SqLe, mul_add, mul_comm, mul_left_comm, add_assoc, gt_iff_lt]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [SqLe, mul_assoc, gt_iff_lt] at l zw", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [trans_source]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [div_eq_mul_inv, mul_inv_rev, hbd.inv_inv.symm.eq, hbc.mul_mul_mul_comm]", "informal": "We're rewriting part of the expression using [div_eq_mul_inv,." }, { "formal": "simp [Buckets.mk, empty', mkArray, List.mem_replicate] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h, List.Pairwise.nil]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Buckets.mk, empty', mkArray, Array.getElem_eq_data_get, AssocList.All]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases h\u2081\u2082 : p\u2081 = p\u2082", "informal": "We're breaking down the problem into cases based on h\u2081\u2082." }, { "formal": "by_cases h\u2083\u2082 : p\u2083 = p\u2082", "informal": "We're breaking down the problem into cases based on h\u2083\u2082." }, { "formal": "rw [or_iff_right h\u2081\u2082, or_iff_right h\u2083\u2082]", "informal": "We're rewriting part of the expression using [or_iff_right." }, { "formal": "rcases h with (h | h | h)", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "exact Or.inl h\u2081\u2082", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "exact Or.inr (Or.inl h\u2083\u2082)", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "exact Or.inr (angle_eq_pi_iff_sbtw.2 \u27e8h, Ne.symm h\u2081\u2082, Ne.symm h\u2083\u2082\u27e9)", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "exact Or.inl (h.angle\u2083\u2081\u2082_eq_zero_of_ne h\u2083\u2082)", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "exact Or.inl (h.angle\u2082\u2083\u2081_eq_zero_of_ne h\u2081\u2082)", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "rcases h with (rfl | rfl | h | h)", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "rw [angle_eq_zero_iff_ne_and_wbtw] at h", "informal": "We're rewriting part of the expression using [angle_eq_zero_iff_ne_and_wbtw]." }, { "formal": "rcases h with (\u27e8-, h\u27e9 | \u27e8-, h\u27e9)", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "rw [Set.insert_comm]", "informal": "We're rewriting part of the expression using [Set.insert_comm]." }, { "formal": "exact h.collinear", "informal": "Here, we provide the exact term h.collinear that solves our current goal." }, { "formal": "rw [Set.insert_comm, Set.pair_comm]", "informal": "We're rewriting part of the expression using [Set.insert_comm,." }, { "formal": "exact h.collinear", "informal": "Here, we provide the exact term h.collinear that solves our current goal." }, { "formal": "rw [angle_eq_pi_iff_sbtw] at h", "informal": "We're rewriting part of the expression using [angle_eq_pi_iff_sbtw]." }, { "formal": "exact h.wbtw.collinear", "informal": "Here, we provide the exact term h.wbtw.collinear that solves our current goal." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "rw [\u2190 hf.zero_eq x hx, \u2190 hg.zero_eq x hx]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro m hm x hx", "informal": "We introduce new variables m." }, { "formal": "intro m hm", "informal": "We introduce new variables m." }, { "formal": "exact (L m).continuous.comp_continuousOn ((hf.cont m hm).prod (hg.cont m hm))", "informal": "Here, we provide the exact term (L that solves our current goal." }, { "formal": "rw [esymm_eq_sum_monomial]", "informal": "We're rewriting part of the expression using [esymm_eq_sum_monomial]." }, { "formal": "simp only [\u2190 single_eq_monomial]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro s t hst", "informal": "We introduce new variables s." }, { "formal": "rw [Finset.disjoint_left, Finsupp.support_single_ne_zero _ one_ne_zero]", "informal": "We're rewriting part of the expression using [Finset.disjoint_left,." }, { "formal": "rw [Finsupp.support_single_ne_zero _ one_ne_zero]", "informal": "We're rewriting part of the expression using [Finsupp.support_single_ne_zero." }, { "formal": "simp only [one_ne_zero, mem_singleton, Finsupp.mem_support_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro a h rfl", "informal": "We introduce new variables a." }, { "formal": "rw [Finsupp.support_sum_eq_biUnion, Finsupp.support_sum_eq_biUnion] at this", "informal": "We're rewriting part of the expression using [Finsupp.support_sum_eq_biUnion,." }, { "formal": "have hsingle : \u2200 s : Finset \u03c3, \u2200 x : \u03c3, x \u2208 s \u2192 (Finsupp.single x 1).support = {x} := by\n intros _ x _\n rw [Finsupp.support_single_ne_zero x one_ne_zero]", "informal": "We're rewriting part of the expression using hsingle." }, { "formal": "have hsingle : \u2200 s : Finset \u03c3, \u2200 x : \u03c3, x \u2208 s \u2192 (Finsupp.single x 1).support = {x} := by\n intros _ x _\n rw [Finsupp.support_single_ne_zero x one_ne_zero]", "informal": "We introduce new variables hsingle." }, { "formal": "rw [hs, ht] at this", "informal": "We're rewriting part of the expression using [hs,." }, { "formal": "all_goals intro x y; simp [Finsupp.support_single_disjoint]", "informal": "We introduce new variables intro." }, { "formal": "all_goals intro x y; simp [Finsupp.support_single_disjoint]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intros _ x _", "informal": "We introduce new variables _." }, { "formal": "rw [Finsupp.support_single_ne_zero x one_ne_zero]", "informal": "We're rewriting part of the expression using [Finsupp.support_single_ne_zero." }, { "formal": "simp only [biUnion_singleton_eq_self] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact absurd this hst.symm", "informal": "Here, we provide the exact term absurd that solves our current goal." }, { "formal": "intro x y", "informal": "We introduce new variables x." }, { "formal": "simp [Finsupp.support_single_disjoint]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [le_max_iff, ofAdd_le, ofAdd_le, neg_le_neg_iff, neg_le_neg_iff, Int.ofNat_le, Int.ofNat_le,\n \u2190 min_le_iff]", "informal": "We're rewriting part of the expression using [le_max_iff,." }, { "formal": "rw [sub_eq_iff_eq_add] at hm2 hn2", "informal": "We're rewriting part of the expression using [sub_eq_iff_eq_add]." }, { "formal": "have h3 : ((m0 * 2 + 1) ^ 2 - (n0 * 2 + 1) ^ 2) / 2 % 2 = 0 := by\n rw [h2, Int.mul_ediv_cancel_left, Int.mul_emod_right]\n exact by decide", "informal": "We're rewriting part of the expression using h3." }, { "formal": "have h3 : ((m0 * 2 + 1) ^ 2 - (n0 * 2 + 1) ^ 2) / 2 % 2 = 0 := by\n rw [h2, Int.mul_ediv_cancel_left, Int.mul_emod_right]\n exact by decide", "informal": "Here, we provide the exact term h3 that solves our current goal." }, { "formal": "rw [h1, h2, Int.mul_ediv_cancel_left _ h20, Int.mul_ediv_cancel_left _ h20]", "informal": "We're rewriting part of the expression using [h1,." }, { "formal": "apply hp.not_dvd_one", "informal": "Here, we apply the theorem/lemma hp.not_dvd_one." }, { "formal": "rw [\u2190 h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 Int.coe_nat_dvd_left] at hp1 hp2", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply Nat.dvd_gcd", "informal": "Here, we apply the theorem/lemma Nat.dvd_gcd." }, { "formal": "rw [h2, Int.mul_ediv_cancel_left, Int.mul_emod_right]", "informal": "We're rewriting part of the expression using [h2,." }, { "formal": "exact by decide", "informal": "Here, we provide the exact term by that solves our current goal." }, { "formal": "apply Int.Prime.dvd_natAbs_of_coe_dvd_sq hp", "informal": "Here, we apply the theorem/lemma Int.Prime.dvd_natAbs_of_coe_dvd_sq." }, { "formal": "apply Int.Prime.dvd_natAbs_of_coe_dvd_sq hp", "informal": "Here, we apply the theorem/lemma Int.Prime.dvd_natAbs_of_coe_dvd_sq." }, { "formal": "rcases zero_or_succ_or_limit o with (rfl | \u27e8o, rfl\u27e9 | l)", "informal": "We're breaking down the problem into cases based on zero_or_succ_or_limit." }, { "formal": "simp [not_zero_isLimit, Cardinal.aleph0_ne_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [not_succ_isLimit, Cardinal.one_lt_aleph0]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [l]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [e, ord_nat] at this", "informal": "We're rewriting part of the expression using [e,." }, { "formal": "cases n", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "simp at e", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [e, not_zero_isLimit] at l", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [nat_cast_succ, cof_succ] at this", "informal": "We're rewriting part of the expression using [nat_cast_succ,." }, { "formal": "rw [\u2190 this, cof_eq_one_iff_is_succ] at e", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rcases e with \u27e8a, rfl\u27e9", "informal": "We're breaking down the problem into cases based on e." }, { "formal": "exact not_succ_isLimit _ l", "informal": "Here, we provide the exact term not_succ_isLimit that solves our current goal." }, { "formal": "rw [Formula.iExs]", "informal": "We're rewriting part of the expression using [Formula.iExs]." }, { "formal": "simp only [Nat.add_zero, realize_exs, realize_relabel, Function.comp,\n castAdd_zero, castIso_refl, OrderIso.refl_apply, Sum.elim_map, id_eq]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp only [Nat.add_zero, realize_exs, realize_relabel, Function.comp,\n castAdd_zero, castIso_refl, OrderIso.refl_apply, Sum.elim_map, id_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 not_iff_not, not_exists, not_exists]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact \u27e8fun v => v \u2218 e, fun v => v \u2218 e.symm,\n fun _ => by simp [Function.comp],\n fun _ => by simp [Function.comp]\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8fun v => v \u2218 e, fun v => v \u2218 e.symm,\n fun _ => by simp [Function.comp],\n fun _ => by simp [Function.comp]\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "simp [Function.comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Function.comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro x", "informal": "We introduce new variables x." }, { "formal": "rw [Formula.Realize, iff_iff_eq]", "informal": "We're rewriting part of the expression using [Formula.Realize,." }, { "formal": "exact i.elim0", "informal": "Here, we provide the exact term i.elim0 that solves our current goal." }, { "formal": "have hnot1 : h * w.head \u2260 1 := by\n rw [\u2190 div_inv_eq_mul]\n exact div_ne_one_of_ne hnh", "informal": "We're rewriting part of the expression using hnot1." }, { "formal": "have hnot1 : h * w.head \u2260 1 := by\n rw [\u2190 div_inv_eq_mul]\n exact div_ne_one_of_ne hnh", "informal": "Here, we provide the exact term hnot1 that solves our current goal." }, { "formal": "intro heq1", "informal": "We introduce new variables heq1." }, { "formal": "apply hw'", "informal": "Here, we apply the theorem/lemma hw'." }, { "formal": "simp [heq1]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 div_inv_eq_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact div_ne_one_of_ne hnh", "informal": "Here, we provide the exact term div_ne_one_of_ne that solves our current goal." }, { "formal": "rw [\u2190 WithBot.coe_lt_coe, coe_sup', Finset.sup_lt_iff (WithBot.bot_lt_coe a)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact ball_congr (fun _ _ => WithBot.coe_lt_coe)", "informal": "Here, we provide the exact term ball_congr that solves our current goal." }, { "formal": "convert (homeoOfIso (asIso (pullback.snd : pullback (\ud835\udfd9 S) g \u27f6 _))).openEmbedding.comp\n (pullback_map_openEmbedding_of_open_embeddings (i\u2082 := \ud835\udfd9 Y) f g (\ud835\udfd9 _) g H\n (homeoOfIso (Iso.refl _)).openEmbedding (\ud835\udfd9 _) rfl (by simp))", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "erw [\u2190 coe_comp]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [valMinAbs_def_pos]", "informal": "We're rewriting part of the expression using [valMinAbs_def_pos]." }, { "formal": "rw [Int.cast_ofNat, nat_cast_zmod_val]", "informal": "We're rewriting part of the expression using [Int.cast_ofNat,." }, { "formal": "rw [Int.cast_sub, Int.cast_ofNat, nat_cast_zmod_val, Int.cast_ofNat, nat_cast_self, sub_zero]", "informal": "We're rewriting part of the expression using [Int.cast_sub,." }, { "formal": "rintro \u27e8\u27e8\u27e8f, _\u27e9, _\u27e9, _\u27e9 \u27e8\u27e8\u27e8g, _\u27e9, _\u27e9, _\u27e9 h", "informal": "We introduce new variables \u27e8\u27e8\u27e8f,." }, { "formal": "simp_rw [F.map_id] at this", "informal": "We're rewriting part of the expression using [F.map_id]." }, { "formal": "apply PullbackCone.mono_of_isLimitMkIdId _ this", "informal": "Here, we apply the theorem/lemma PullbackCone.mono_of_isLimitMkIdId." }, { "formal": "rw [\u2190 neg_sub]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact continuous_iInf_dom (@continuous_norm _ (p i).toSeminormedAddGroup)", "informal": "Here, we provide the exact term continuous_iInf_dom that solves our current goal." }, { "formal": "classical simp only [repr_fract_apply, Int.fract_fract]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [repr_fract_apply, Int.fract_fract]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [mem_roots', IsRoot.def, sub_ne_zero, eval_sub, sub_eq_zero, eval_C]", "informal": "We're rewriting part of the expression using [mem_roots',." }, { "formal": "rw [one_smul]", "informal": "We're rewriting part of the expression using [one_smul]." }, { "formal": "simp only [\u2190 mul_smul, smul_assoc, mul_assoc, mul_comm, mul_left_comm] at hu1' hu2' \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [hu2', hu1']", "informal": "We're rewriting part of the expression using [hu2',." }, { "formal": "rw [factors_mk _ ha0]", "informal": "We're rewriting part of the expression using [factors_mk." }, { "formal": "exact mem_factorSet_some.mpr (mem_factors'_of_dvd ha0 hp hd)", "informal": "Here, we provide the exact term mem_factorSet_some.mpr that solves our current goal." }, { "formal": "rcases exists_extension_of_le_sublinear \u27e8p, f\u27e9 (fun x => \u2016f\u2016 * \u2016x\u2016)\n (fun c hc x => by simp only [norm_smul c x, Real.norm_eq_abs, abs_of_pos hc, mul_left_comm])\n (fun x y => by rw [\u2190 left_distrib]\n exact mul_le_mul_of_nonneg_left (norm_add_le x y) (@norm_nonneg _ _ f))\n fun x => le_trans (le_abs_self _) (f.le_op_norm _) with \u27e8g, g_eq, g_le\u27e9", "informal": "We're rewriting part of the expression using exists_extension_of_le_sublinear." }, { "formal": "rcases exists_extension_of_le_sublinear \u27e8p, f\u27e9 (fun x => \u2016f\u2016 * \u2016x\u2016)\n (fun c hc x => by simp only [norm_smul c x, Real.norm_eq_abs, abs_of_pos hc, mul_left_comm])\n (fun x y => by rw [\u2190 left_distrib]\n exact mul_le_mul_of_nonneg_left (norm_add_le x y) (@norm_nonneg _ _ f))\n fun x => le_trans (le_abs_self _) (f.le_op_norm _) with \u27e8g, g_eq, g_le\u27e9", "informal": "We're breaking down the problem into cases based on exists_extension_of_le_sublinear." }, { "formal": "rcases exists_extension_of_le_sublinear \u27e8p, f\u27e9 (fun x => \u2016f\u2016 * \u2016x\u2016)\n (fun c hc x => by simp only [norm_smul c x, Real.norm_eq_abs, abs_of_pos hc, mul_left_comm])\n (fun x y => by rw [\u2190 left_distrib]\n exact mul_le_mul_of_nonneg_left (norm_add_le x y) (@norm_nonneg _ _ f))\n fun x => le_trans (le_abs_self _) (f.le_op_norm _) with \u27e8g, g_eq, g_le\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases exists_extension_of_le_sublinear \u27e8p, f\u27e9 (fun x => \u2016f\u2016 * \u2016x\u2016)\n (fun c hc x => by simp only [norm_smul c x, Real.norm_eq_abs, abs_of_pos hc, mul_left_comm])\n (fun x y => by rw [\u2190 left_distrib]\n exact mul_le_mul_of_nonneg_left (norm_add_le x y) (@norm_nonneg _ _ f))\n fun x => le_trans (le_abs_self _) (f.le_op_norm _) with \u27e8g, g_eq, g_le\u27e9", "informal": "Here, we provide the exact term exists_extension_of_le_sublinear that solves our current goal." }, { "formal": "simp only [norm_smul c x, Real.norm_eq_abs, abs_of_pos hc, mul_left_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 left_distrib]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact mul_le_mul_of_nonneg_left (norm_add_le x y) (@norm_nonneg _ _ f)", "informal": "Here, we provide the exact term mul_le_mul_of_nonneg_left that solves our current goal." }, { "formal": "apply le_antisymm (g.mkContinuous_norm_le (norm_nonneg f) _)", "informal": "Here, we apply the theorem/lemma le_antisymm." }, { "formal": "dsimp at g_eq", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 g_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply g'.le_op_norm", "informal": "Here, we apply the theorem/lemma g'.le_op_norm." }, { "formal": "rw [coe_mul_apply_eq_dfinsupp_sum]", "informal": "We're rewriting part of the expression using [coe_mul_apply_eq_dfinsupp_sum]." }, { "formal": "apply (DFinsupp.sum_single_index _).trans", "informal": "Here, we apply the theorem/lemma (DFinsupp.sum_single_index." }, { "formal": "simp_rw [ZeroMemClass.coe_zero, zero_mul, ite_self]", "informal": "We're rewriting part of the expression using [ZeroMemClass.coe_zero,." }, { "formal": "exact DFinsupp.sum_zero", "informal": "Here, we provide the exact term DFinsupp.sum_zero that solves our current goal." }, { "formal": "rw [DFinsupp.sum, Finset.sum_ite_of_false _ _ fun x _ H => _, Finset.sum_const_zero]", "informal": "We're rewriting part of the expression using [DFinsupp.sum,." }, { "formal": "exact fun x _ H => h ((self_le_add_right i x).trans_eq H)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "cases h", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "intro hS", "informal": "We introduce new variables hS." }, { "formal": "exact \u27e8\u27e8_, hS\u27e9, (Sieve.fullyFaithfulFunctorGaloisCoinsertion G X).u_l_eq S\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e8_, that solves our current goal." }, { "formal": "rintro \u27e8T, rfl\u27e9", "informal": "We introduce new variables \u27e8T,." }, { "formal": "exact Hld T", "informal": "Here, we provide the exact term Hld that solves our current goal." }, { "formal": "induction p using Polynomial.induction_on' with\n| h_add p q hp hq =>\n simp [hp, hq, mul_add]\n| h_monomial n b =>\n simp [mul_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hp, hq, mul_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [mul_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases totallyBounded_iff'.1 hs.totallyBounded \u03b5 h\u03b5 with \u27e8t, -, htf, hst\u27e9", "informal": "We're breaking down the problem into cases based on totallyBounded_iff'.1." }, { "formal": "exact \u27e8t, htf.countable, hst.trans <| iUnion\u2082_mono fun _ _ => ball_subset_closedBall\u27e9", "informal": "Here, we provide the exact term \u27e8t, that solves our current goal." }, { "formal": "calc\n n * Fintype.card \u03c3 = \u2211 _s : \u03c3, n := by\n rw [Finset.sum_const, Nat.nsmul_eq_mul, mul_comm, Finset.card_univ]\n _ \u2264 \u2211 s, d s := (Finset.sum_le_sum fun s _ => h s)\n _ \u2264 d.sum fun _ e => e := by\n rw [Finsupp.sum_fintype]\n intros\n rfl\n _ \u2264 f.totalDegree := le_totalDegree hd", "informal": "We're rewriting part of the expression using n." }, { "formal": "rw [Finset.sum_const, Nat.nsmul_eq_mul, mul_comm, Finset.card_univ]", "informal": "We're rewriting part of the expression using [Finset.sum_const,." }, { "formal": "rw [Finsupp.sum_fintype]", "informal": "We're rewriting part of the expression using [Finsupp.sum_fintype]." }, { "formal": "have := (h.sub_left (Commute.refl y)).geom_sum\u2082_mul_add n", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "rw [sub_add_cancel] at this", "informal": "We're rewriting part of the expression using [sub_add_cancel]." }, { "formal": "rw [\u2190 this, add_sub_cancel]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [cliqueFree_iff, isEmpty_iff]", "informal": "We're rewriting part of the expression using [cliqueFree_iff,." }, { "formal": "intro f", "informal": "We introduce new variables f." }, { "formal": "obtain \u27e8v, w, hn, he\u27e9 := exists_ne_map_eq_of_card_lt (Sigma.fst \u2218 f) (by simp [hc])", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 top_adj, \u2190 f.map_adj_iff, comap_Adj, top_adj] at hn", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact absurd he hn", "informal": "Here, we provide the exact term absurd that solves our current goal." }, { "formal": "simp [hc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [prod_cons]", "informal": "We're rewriting part of the expression using [prod_cons]." }, { "formal": "exact one_le_mul (hl\u2081 hd (mem_cons_self hd tl)) (ih fun x h => hl\u2081 x (mem_cons_of_mem hd h))", "informal": "Here, we provide the exact term one_le_mul that solves our current goal." }, { "formal": "simp only [SemiconjBy, h.eq, neg_mul, mul_neg]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [continuousLinearMapOfBilin, coe_comp', ContinuousLinearEquiv.coe_coe,\n LinearIsometryEquiv.coe_toContinuousLinearEquiv, Function.comp_apply, toDual_symm_apply]", "informal": "We're rewriting part of the expression using [continuousLinearMapOfBilin,." }, { "formal": "rw [edgeDensity_def, edgeDensity_def, div_add_div_same, div_eq_one_iff_eq]", "informal": "We're rewriting part of the expression using [edgeDensity_def,." }, { "formal": "apply mul_ne_zero <;> exact_mod_cast Nat.pos_iff_ne_zero.1 (Nonempty.card_pos \u2039_\u203a)", "informal": "Here, we apply the theorem/lemma mul_ne_zero." }, { "formal": "rw [eq_top_iff]", "informal": "We're rewriting part of the expression using [eq_top_iff]." }, { "formal": "rintro x -", "informal": "We introduce new variables x." }, { "formal": "simp only [fst, comap_bot, mem_map, mem_ker, snd_apply, fst_apply,\n Prod.exists, exists_eq_left, exists_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply IsIso.inv_eq_of_hom_inv_id", "informal": "Here, we apply the theorem/lemma IsIso.inv_eq_of_hom_inv_id." }, { "formal": "simp only [\u2190 whiskerLeft_comp, whiskerLeft_id, IsIso.hom_inv_id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 tensor_comp]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply (Ideal.homogeneousCore \ud835\udc9c I).is_homogeneous'.isPrime_of_homogeneous_mem_or_mem", "informal": "Here, we apply the theorem/lemma (Ideal.homogeneousCore." }, { "formal": "rintro x y hx hy hxy", "informal": "We introduce new variables x." }, { "formal": "exact ne_top_of_le_ne_top h.ne_top (Ideal.toIdeal_homogeneousCore_le \ud835\udc9c I)", "informal": "Here, we provide the exact term ne_top_of_le_ne_top that solves our current goal." }, { "formal": "exact Ideal.mem_homogeneousCore_of_homogeneous_of_mem hx", "informal": "Here, we provide the exact term Ideal.mem_homogeneousCore_of_homogeneous_of_mem that solves our current goal." }, { "formal": "exact Ideal.mem_homogeneousCore_of_homogeneous_of_mem hy", "informal": "Here, we provide the exact term Ideal.mem_homogeneousCore_of_homogeneous_of_mem that solves our current goal." }, { "formal": "rw [mul_comm]", "informal": "We're rewriting part of the expression using [mul_comm]." }, { "formal": "exact div_add_mod _ _", "informal": "Here, we provide the exact term div_add_mod that solves our current goal." }, { "formal": "rw [sup_eq_closure_mul]", "informal": "We're rewriting part of the expression using [sup_eq_closure_mul]." }, { "formal": "rintro _ \u27e8x, y, hx, hy, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact mul_mem_mul hx hy", "informal": "Here, we provide the exact term mul_mem_mul that solves our current goal." }, { "formal": "rintro _ \u27e8x, y, hx, hy, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact \u27e81, 1, one_mem _, one_mem _, mul_one 1\u27e9", "informal": "Here, we provide the exact term \u27e81, that solves our current goal." }, { "formal": "rintro _ _ \u27e8x, y, hx, hy, rfl\u27e9 \u27e8x', y', hx', hy', rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "simp only [mul_assoc, mul_inv_cancel_left]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [neBot_iff, not_and_or, Ne.def, sup_eq_bot_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [one_mul]", "informal": "We're rewriting part of the expression using [one_mul]." }, { "formal": "rintro \u27e8_, y, hy, rfl\u27e9", "informal": "We introduce new variables \u27e8_,." }, { "formal": "induction l <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [hk] at this", "informal": "We're rewriting part of the expression using [hk]." }, { "formal": "dsimp [Part.fix]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [assert_pos h']", "informal": "We're rewriting part of the expression using [assert_pos." }, { "formal": "intro _this hk", "informal": "We introduce new variables _this." }, { "formal": "induction k generalizing z with\n| zero =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext x: 1\n rw [assert_neg]\n rfl\n rw [Nat.zero_add] at _this\n simpa only [not_not, Coe]\n| succ n n_ih =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext : 1\n have hh : \u00ac(Fix.approx f z.val x).Dom := by\n apply Nat.find_min h'\n rw [hk, Nat.succ_add, \u2190 Nat.add_succ]\n apply Nat.lt_of_succ_le\n apply Nat.le_add_left\n rw [succ_add_eq_succ_add] at _this hk\n rw [assert_pos hh, n_ih (Upto.succ z hh) _this hk]", "informal": "Here, we apply the theorem/lemma k." }, { "formal": "induction k generalizing z with\n| zero =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext x: 1\n rw [assert_neg]\n rfl\n rw [Nat.zero_add] at _this\n simpa only [not_not, Coe]\n| succ n n_ih =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext : 1\n have hh : \u00ac(Fix.approx f z.val x).Dom := by\n apply Nat.find_min h'\n rw [hk, Nat.succ_add, \u2190 Nat.add_succ]\n apply Nat.lt_of_succ_le\n apply Nat.le_add_left\n rw [succ_add_eq_succ_add] at _this hk\n rw [assert_pos hh, n_ih (Upto.succ z hh) _this hk]", "informal": "We're rewriting part of the expression using k." }, { "formal": "induction k generalizing z with\n| zero =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext x: 1\n rw [assert_neg]\n rfl\n rw [Nat.zero_add] at _this\n simpa only [not_not, Coe]\n| succ n n_ih =>\n intro x'\n rw [Fix.approx, WellFounded.fix_eq, fixAux]\n congr\n ext : 1\n have hh : \u00ac(Fix.approx f z.val x).Dom := by\n apply Nat.find_min h'\n rw [hk, Nat.succ_add, \u2190 Nat.add_succ]\n apply Nat.lt_of_succ_le\n apply Nat.le_add_left\n rw [succ_add_eq_succ_add] at _this hk\n rw [assert_pos hh, n_ih (Upto.succ z hh) _this hk]", "informal": "We introduce new variables k." }, { "formal": "intro x'", "informal": "We introduce new variables x'." }, { "formal": "rw [Fix.approx, WellFounded.fix_eq, fixAux]", "informal": "We're rewriting part of the expression using [Fix.approx,." }, { "formal": "rw [assert_neg]", "informal": "We're rewriting part of the expression using [assert_neg]." }, { "formal": "rw [Nat.zero_add] at _this", "informal": "We're rewriting part of the expression using [Nat.zero_add]." }, { "formal": "intro x'", "informal": "We introduce new variables x'." }, { "formal": "rw [Fix.approx, WellFounded.fix_eq, fixAux]", "informal": "We're rewriting part of the expression using [Fix.approx,." }, { "formal": "have hh : \u00ac(Fix.approx f z.val x).Dom := by\n apply Nat.find_min h'\n rw [hk, Nat.succ_add, \u2190 Nat.add_succ]\n apply Nat.lt_of_succ_le\n apply Nat.le_add_left", "informal": "Here, we apply the theorem/lemma hh." }, { "formal": "have hh : \u00ac(Fix.approx f z.val x).Dom := by\n apply Nat.find_min h'\n rw [hk, Nat.succ_add, \u2190 Nat.add_succ]\n apply Nat.lt_of_succ_le\n apply Nat.le_add_left", "informal": "We're rewriting part of the expression using hh." }, { "formal": "rw [succ_add_eq_succ_add] at _this hk", "informal": "We're rewriting part of the expression using [succ_add_eq_succ_add]." }, { "formal": "rw [assert_pos hh, n_ih (Upto.succ z hh) _this hk]", "informal": "We're rewriting part of the expression using [assert_pos." }, { "formal": "apply Nat.find_min h'", "informal": "Here, we apply the theorem/lemma Nat.find_min." }, { "formal": "rw [hk, Nat.succ_add, \u2190 Nat.add_succ]", "informal": "We're rewriting part of the expression using [hk,." }, { "formal": "apply Nat.lt_of_succ_le", "informal": "Here, we apply the theorem/lemma Nat.lt_of_succ_le." }, { "formal": "apply Nat.le_add_left", "informal": "Here, we apply the theorem/lemma Nat.le_add_left." }, { "formal": "simp only [normalize, maybeNormalize_eq,\n Int.div_eq_ediv_of_dvd (Int.ofNat_dvd_left.2 (Nat.gcd_dvd_left ..))]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [range_comap_of_surjective _ f hf]", "informal": "We're rewriting part of the expression using [range_comap_of_surjective." }, { "formal": "exact isClosed_zeroLocus _", "informal": "Here, we provide the exact term isClosed_zeroLocus that solves our current goal." }, { "formal": "rw [add_comm, toIocMod_add_right]", "informal": "We're rewriting part of the expression using [add_comm,." }, { "formal": "rw [cosh_mul_I, sinh_mul_I, mul_pow, I_sq, mul_neg_one, sub_neg_eq_add, add_comm]", "informal": "We're rewriting part of the expression using [cosh_mul_I,." }, { "formal": "rw [Metric.diam, Metric.diam, hf.ediam_image]", "informal": "We're rewriting part of the expression using [Metric.diam,." }, { "formal": "apply RingHom.isIntegral_of_surjective", "informal": "Here, we apply the theorem/lemma RingHom.isIntegral_of_surjective." }, { "formal": "apply Function.Surjective.comp Quotient.mk_surjective", "informal": "Here, we apply the theorem/lemma Function.Surjective.comp." }, { "formal": "exact C_surjective (Fin 0)", "informal": "Here, we provide the exact term C_surjective that solves our current goal." }, { "formal": "apply aux_IH IH (finSuccEquiv R n).symm P hP", "informal": "Here, we apply the theorem/lemma aux_IH." }, { "formal": "simp only [lTensor, rTensor, \u2190 map_comp, id_comp, comp_id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [measure_univ, ENNReal.one_toReal, inv_one, one_smul]", "informal": "We're rewriting part of the expression using [measure_univ,." }, { "formal": "rw [\u2190 mul_add, mul_nonneg_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rcases lt_trichotomy n 0 with (h | rfl | h)", "informal": "We're breaking down the problem into cases based on lt_trichotomy." }, { "formal": "exact Or.inr \u27e8by exact_mod_cast h.le, hnx' h\u27e9", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "simp [le_total 0 x]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Or.inl \u27e8by exact_mod_cast h.le, hnx h\u27e9", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "apply coe_inj", "informal": "Here, we apply the theorem/lemma coe_inj." }, { "formal": "simp only [polar_mem_iff, Set.mem_iInter, Set.mem_setOf_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [det_updateRow_add,\n det_zero_of_row_eq hij (updateRow_self.trans (updateRow_ne hij.symm).symm)]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro \u27e8_, \u27e8y, hy, rfl\u27e9\u27e9", "informal": "We introduce new variables \u27e8_,." }, { "formal": "dsimp only [RingHom.algebraMap_toAlgebra, RingHom.comp_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact congr_arg _ (h.symm_apply_apply _)", "informal": "Here, we apply the theorem/lemma congr_arg." }, { "formal": "exact congr_arg _ (h.symm_apply_apply _)", "informal": "Here, we provide the exact term congr_arg that solves our current goal." }, { "formal": "intro y", "informal": "We introduce new variables y." }, { "formal": "dsimp only [RingHom.algebraMap_toAlgebra, RingHom.comp_apply] at e \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "convert e <;> exact h.symm_apply_apply _", "informal": "Here, we apply the theorem/lemma e." }, { "formal": "convert e <;> exact h.symm_apply_apply _", "informal": "Here, we provide the exact term e that solves our current goal." }, { "formal": "intro x y", "informal": "We introduce new variables x." }, { "formal": "rw [RingHom.algebraMap_toAlgebra, RingHom.comp_apply, RingHom.comp_apply,\n IsLocalization.eq_iff_exists M S]", "informal": "We're rewriting part of the expression using [RingHom.algebraMap_toAlgebra,." }, { "formal": "simp_rw [\u2190 h.toEquiv.apply_eq_iff_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [RingEquiv.apply_symm_apply, RingEquiv.map_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases n", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "rw [two_mul]", "informal": "We're rewriting part of the expression using [two_mul]." }, { "formal": "rw [Zsqrtd.norm_mul, Int.natAbs_mul]", "informal": "We're rewriting part of the expression using [Zsqrtd.norm_mul,." }, { "formal": "exact le_mul_of_one_le_right (Nat.zero_le _) (Int.ofNat_le.1 (by\n rw [abs_coe_nat_norm]\n exact Int.add_one_le_of_lt (norm_pos.2 hy)))", "informal": "We're rewriting part of the expression using le_mul_of_one_le_right." }, { "formal": "exact le_mul_of_one_le_right (Nat.zero_le _) (Int.ofNat_le.1 (by\n rw [abs_coe_nat_norm]\n exact Int.add_one_le_of_lt (norm_pos.2 hy)))", "informal": "Here, we provide the exact term le_mul_of_one_le_right that solves our current goal." }, { "formal": "rw [abs_coe_nat_norm]", "informal": "We're rewriting part of the expression using [abs_coe_nat_norm]." }, { "formal": "exact Int.add_one_le_of_lt (norm_pos.2 hy)", "informal": "Here, we provide the exact term Int.add_one_le_of_lt that solves our current goal." }, { "formal": "exact count_eq_one_of_mem d h", "informal": "Here, we provide the exact term count_eq_one_of_mem that solves our current goal." }, { "formal": "exact count_eq_zero_of_not_mem h", "informal": "Here, we provide the exact term count_eq_zero_of_not_mem that solves our current goal." }, { "formal": "cases' emod_two_eq_zero_or_one m with h\u2081 h\u2081 <;>\ncases' emod_two_eq_zero_or_one n with h\u2082 h\u2082 <;>\nsimp [even_iff, h\u2081, h\u2082, Int.add_emod]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Int.sub_eq_add_neg]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 image_inv, sSup_image]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact ((OrderIso.inv \u03b1).map_sInf _).symm", "informal": "Here, we provide the exact term ((OrderIso.inv that solves our current goal." }, { "formal": "rw [range_comp, hf, Submodule.map_top]", "informal": "We're rewriting part of the expression using [range_comp,." }, { "formal": "simp [arccos]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro \u03b5 h\u03b5", "informal": "We introduce new variables \u03b5." }, { "formal": "intro j hj", "informal": "We introduce new variables j." }, { "formal": "rw [\u2190 padicNorm.dvd_iff_norm_le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [succ_le_succ_iff] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [map_fst_zip as bs h]", "informal": "We're rewriting part of the expression using [map_fst_zip." }, { "formal": "simp at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 image2_image_left]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact closure_mono (image2_subset (image_preimage_subset _ _) Subset.rfl)", "informal": "Here, we provide the exact term closure_mono that solves our current goal." }, { "formal": "haveI : PreservesFiniteLimits F := by\n apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{u\u2081}\n intros; skip; apply preservesLimitOfLanPreservesLimit", "informal": "Here, we apply the theorem/lemma :." }, { "formal": "apply flat_of_preservesFiniteLimits", "informal": "Here, we apply the theorem/lemma flat_of_preservesFiniteLimits." }, { "formal": "apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{u\u2081}", "informal": "Here, we apply the theorem/lemma preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{u\u2081}." }, { "formal": "apply preservesLimitOfLanPreservesLimit", "informal": "Here, we apply the theorem/lemma preservesLimitOfLanPreservesLimit." }, { "formal": "intro s s_op", "informal": "We introduce new variables s." }, { "formal": "rw [quotient_ring_saturate]", "informal": "We're rewriting part of the expression using [quotient_ring_saturate]." }, { "formal": "exact isOpen_iUnion fun \u27e8n, _\u27e9 => isOpenMap_add_left n s s_op", "informal": "Here, we provide the exact term isOpen_iUnion that solves our current goal." }, { "formal": "simp only [bodd, boddDiv2, div2]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases fst", "informal": "We're breaking down the problem into cases based on fst." }, { "formal": "simp only [\u2190Functor.map_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact openEmbedding_iff_comp_isIso f g", "informal": "Here, we provide the exact term openEmbedding_iff_comp_isIso that solves our current goal." }, { "formal": "rw [\u2190 one_smul R p, \u2190 h, zero_smul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "obtain \u27e8i\u2082, i\u2083, h\u2081\u2082, h\u2082\u2083, h\u2081\u2083\u27e9 : \u2203 i\u2082 i\u2083, i\u2081 \u2260 i\u2082 \u2227 i\u2082 \u2260 i\u2083 \u2227 i\u2081 \u2260 i\u2083 := by\n fin_cases i\u2081 <;> decide", "informal": "We're breaking down the problem into cases based on \u27e8i\u2082,." }, { "formal": "rw [orthocenter_eq_mongePoint, t.altitude_eq_mongePlane h\u2081\u2082 h\u2081\u2083 h\u2082\u2083]", "informal": "We're rewriting part of the expression using [orthocenter_eq_mongePoint,." }, { "formal": "exact t.mongePoint_mem_mongePlane", "informal": "Here, we provide the exact term t.mongePoint_mem_mongePlane that solves our current goal." }, { "formal": "fin_cases i\u2081 <;> decide", "informal": "We're breaking down the problem into cases based on i\u2081." }, { "formal": "rw [\u2190 coe_inj, coe_union, coe_Ico, coe_Ico, coe_Ico, Set.Ico_union_Ico_eq_Ico hab hbc]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 o.oangle_sign_add_smul_left x y 1, one_smul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 pointsWithCircumcenter_point]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "refine'\n affineCombination_of_eq_one_of_eq_zero _ _ _ (mem_univ _)\n (by simp [pointWeightsWithCircumcenter]) _", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro i hi hn", "informal": "We introduce new variables i." }, { "formal": "cases i", "informal": "We're breaking down the problem into cases based on i." }, { "formal": "simp [pointWeightsWithCircumcenter]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [pointWeightsWithCircumcenter, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : \u2200 x : \u211d, x = x / n * n := by intro x; rw [div_mul_cancel]; exact Nat.cast_ne_zero.mpr hn", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : \u2200 x : \u211d, x = x / n * n := by intro x; rw [div_mul_cancel]; exact Nat.cast_ne_zero.mpr hn", "informal": "We introduce new variables :." }, { "formal": "have : \u2200 x : \u211d, x = x / n * n := by intro x; rw [div_mul_cancel]; exact Nat.cast_ne_zero.mpr hn", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "conv_rhs => enter [1, x, 2, 1]; rw [this x]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [GammaSeq_eq_betaIntegral_of_re_pos hs]", "informal": "We're rewriting part of the expression using [GammaSeq_eq_betaIntegral_of_re_pos." }, { "formal": "dsimp only at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [betaIntegral, this, real_smul, zero_div, div_self, add_sub_cancel,\n \u2190 intervalIntegral.integral_const_mul, \u2190 intervalIntegral.integral_const_mul]", "informal": "We're rewriting part of the expression using [betaIntegral,." }, { "formal": "simp_rw [intervalIntegral.integral_of_le zero_le_one]", "informal": "We're rewriting part of the expression using [intervalIntegral.integral_of_le." }, { "formal": "have A : (n : \u2102) ^ s = (n : \u2102) ^ (s - 1) * n := by\n conv_lhs => rw [(by ring : s = s - 1 + 1), cpow_add _ _ hn']\n simp", "informal": "We're rewriting part of the expression using A." }, { "formal": "have B : ((x : \u2102) * \u2191n) ^ (s - 1) = (x : \u2102) ^ (s - 1) * (n : \u2102) ^ (s - 1) := by\n rw [\u2190 ofReal_nat_cast,\n mul_cpow_ofReal_nonneg hx.1.le (Nat.cast_pos.mpr (Nat.pos_of_ne_zero hn)).le]", "informal": "We're rewriting part of the expression using B." }, { "formal": "rw [A, B, cpow_nat_cast]", "informal": "We're rewriting part of the expression using [A,." }, { "formal": "intro x", "informal": "We introduce new variables x." }, { "formal": "rw [div_mul_cancel]", "informal": "We're rewriting part of the expression using [div_mul_cancel]." }, { "formal": "exact Nat.cast_ne_zero.mpr hn", "informal": "Here, we provide the exact term Nat.cast_ne_zero.mpr that solves our current goal." }, { "formal": "exact Nat.cast_ne_zero.mpr hn", "informal": "Here, we provide the exact term Nat.cast_ne_zero.mpr that solves our current goal." }, { "formal": "conv_lhs => rw [(by ring : s = s - 1 + 1), cpow_add _ _ hn']", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [\u2190 ofReal_nat_cast,\n mul_cpow_ofReal_nonneg hx.1.le (Nat.cast_pos.mpr (Nat.pos_of_ne_zero hn)).le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [add_comm a b, add_comm a c, add_tsub_add_eq_tsub_right]", "informal": "We're rewriting part of the expression using [add_comm." }, { "formal": "simp only [realize, Sup.sup, realize_not, eq_iff_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Iso.refl_hom, Category.id_comp, Iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr", "informal": "We're rewriting part of the expression using [Iso.refl_hom,." }, { "formal": "rw [Iso.refl_hom, Category.id_comp, Iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "rw [\u2190 monomial_zero_left, hasseDeriv_monomial, Nat.choose_eq_zero_of_lt hk, Nat.cast_zero,\n zero_mul, monomial_zero_right]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "classical\nhave :\n \u2200 p \u2208 antidiagonal m,\n coeff R (p : (\u03c3 \u2192\u2080 \u2115) \u00d7 (\u03c3 \u2192\u2080 \u2115)).1 (monomial R n a) * coeff R p.2 \u03c6 \u2260 0 \u2192 p.1 = n :=\n fun p _ hp => eq_of_coeff_monomial_ne_zero (left_ne_zero_of_mul hp)\nrw [coeff_mul, \u2190 Finset.sum_filter_of_ne this, antidiagonal_filter_fst_eq, Finset.sum_ite_index]\nsimp only [Finset.sum_singleton, coeff_monomial_same, Finset.sum_empty]", "informal": "We're rewriting part of the expression using have." }, { "formal": "classical\nhave :\n \u2200 p \u2208 antidiagonal m,\n coeff R (p : (\u03c3 \u2192\u2080 \u2115) \u00d7 (\u03c3 \u2192\u2080 \u2115)).1 (monomial R n a) * coeff R p.2 \u03c6 \u2260 0 \u2192 p.1 = n :=\n fun p _ hp => eq_of_coeff_monomial_ne_zero (left_ne_zero_of_mul hp)\nrw [coeff_mul, \u2190 Finset.sum_filter_of_ne this, antidiagonal_filter_fst_eq, Finset.sum_ite_index]\nsimp only [Finset.sum_singleton, coeff_monomial_same, Finset.sum_empty]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [coeff_mul, \u2190 Finset.sum_filter_of_ne this, antidiagonal_filter_fst_eq, Finset.sum_ite_index]", "informal": "We're rewriting part of the expression using [coeff_mul,." }, { "formal": "simp only [Finset.sum_singleton, coeff_monomial_same, Finset.sum_empty]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [getElem?_pos, get_push_eq]", "informal": "We're rewriting part of the expression using [getElem?_pos,." }, { "formal": "cases x", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "exact o.2.1 i", "informal": "Here, we provide the exact term o.2.1 that solves our current goal." }, { "formal": "simp [snorm', hq_pos]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases s\u2081", "informal": "We're breaking down the problem into cases based on s\u2081." }, { "formal": "cases s\u2082", "informal": "We're breaking down the problem into cases based on s\u2082." }, { "formal": "dsimp at hl h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Nat.zero_add]", "informal": "We're rewriting part of the expression using [Nat.zero_add]." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [map_apply (hf.prod_map hg) (hs.prod ht), map_apply hf hs, map_apply hg ht]", "informal": "Here, we apply the theorem/lemma [map_apply." }, { "formal": "rw [map_apply (hf.prod_map hg) (hs.prod ht), map_apply hf hs, map_apply hg ht]", "informal": "We're rewriting part of the expression using [map_apply." }, { "formal": "exact prod_prod (f \u207b\u00b9' s) (g \u207b\u00b9' t)", "informal": "Here, we provide the exact term prod_prod that solves our current goal." }, { "formal": "rw [compProd, dif_pos]", "informal": "We're rewriting part of the expression using [compProd,." }, { "formal": "rw [Measure.ofMeasurable_apply _ hs]", "informal": "Here, we apply the theorem/lemma [Measure.ofMeasurable_apply." }, { "formal": "rw [Measure.ofMeasurable_apply _ hs]", "informal": "We're rewriting part of the expression using [Measure.ofMeasurable_apply." }, { "formal": "rw [List.bind, \u2190 coe_join, List.map_map]", "informal": "We're rewriting part of the expression using [List.bind,." }, { "formal": "rcases j with \u27e8\u27e8_, _\u27e9, _\u27e9", "informal": "We're breaking down the problem into cases based on j." }, { "formal": "erw [colimit.\u03b9_map_assoc]", "informal": "We're rewriting part of the expression using [colimit.\u03b9_map_assoc]." }, { "formal": "simp [stalkFunctor, stalkPushforward]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have fmeas : AEMeasurable f \u03bc := by\n convert fint.aestronglyMeasurable.real_toNNReal.aemeasurable\n simp only [Real.toNNReal_coe]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact exists_between \u03b5pos", "informal": "Here, we provide the exact term exists_between that solves our current goal." }, { "formal": "rcases exists_lt_lowerSemicontinuous_lintegral_ge_of_aemeasurable \u03bc f fmeas\n (ENNReal.coe_ne_zero.2 \u03b4pos.ne') with\n \u27e8g, f_lt_g, gcont, gint\u27e9", "informal": "We're breaking down the problem into cases based on exists_lt_lowerSemicontinuous_lintegral_ge_of_aemeasurable." }, { "formal": "have Ig : (\u222b\u207b a : \u03b1, ENNReal.ofReal (g a).toReal \u2202\u03bc) = \u222b\u207b a : \u03b1, g a \u2202\u03bc := by\n apply lintegral_congr_ae\n filter_upwards [g_lt_top] with _ hx\n simp only [hx.ne, ENNReal.ofReal_toReal, Ne.def, not_false_iff]", "informal": "Here, we apply the theorem/lemma Ig." }, { "formal": "have Ig : (\u222b\u207b a : \u03b1, ENNReal.ofReal (g a).toReal \u2202\u03bc) = \u222b\u207b a : \u03b1, g a \u2202\u03bc := by\n apply lintegral_congr_ae\n filter_upwards [g_lt_top] with _ hx\n simp only [hx.ne, ENNReal.ofReal_toReal, Ne.def, not_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Real.toNNReal_coe]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply lintegral_congr_ae", "informal": "Here, we apply the theorem/lemma lintegral_congr_ae." }, { "formal": "simp only [hx.ne, ENNReal.ofReal_toReal, Ne.def, not_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hasFiniteIntegral_iff_norm, Real.norm_eq_abs, abs_of_nonneg ENNReal.toReal_nonneg]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]", "informal": "We're rewriting part of the expression using [integral_eq_lintegral_of_nonneg_ae,." }, { "formal": "calc\n ENNReal.toReal (\u222b\u207b a : \u03b1, ENNReal.ofReal (g a).toReal \u2202\u03bc) =\n ENNReal.toReal (\u222b\u207b a : \u03b1, g a \u2202\u03bc) :=\n by congr 1\n _ \u2264 ENNReal.toReal ((\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b4) := by\n apply ENNReal.toReal_mono _ gint\n simpa using int_f_ne_top\n _ = ENNReal.toReal (\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b4 := by\n rw [ENNReal.toReal_add int_f_ne_top ENNReal.coe_ne_top, ENNReal.coe_toReal]\n _ < ENNReal.toReal (\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b5 := (add_lt_add_left h\u03b4\u03b5 _)\n _ = (\u222b\u207b a : \u03b1, ENNReal.ofReal \u2191(f a) \u2202\u03bc).toReal + \u03b5 := by simp", "informal": "Here, we apply the theorem/lemma ENNReal.toReal." }, { "formal": "calc\n ENNReal.toReal (\u222b\u207b a : \u03b1, ENNReal.ofReal (g a).toReal \u2202\u03bc) =\n ENNReal.toReal (\u222b\u207b a : \u03b1, g a \u2202\u03bc) :=\n by congr 1\n _ \u2264 ENNReal.toReal ((\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b4) := by\n apply ENNReal.toReal_mono _ gint\n simpa using int_f_ne_top\n _ = ENNReal.toReal (\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b4 := by\n rw [ENNReal.toReal_add int_f_ne_top ENNReal.coe_ne_top, ENNReal.coe_toReal]\n _ < ENNReal.toReal (\u222b\u207b a : \u03b1, f a \u2202\u03bc) + \u03b5 := (add_lt_add_left h\u03b4\u03b5 _)\n _ = (\u222b\u207b a : \u03b1, ENNReal.ofReal \u2191(f a) \u2202\u03bc).toReal + \u03b5 := by simp", "informal": "We're rewriting part of the expression using ENNReal.toReal." }, { "formal": "apply ENNReal.toReal_mono _ gint", "informal": "Here, we apply the theorem/lemma ENNReal.toReal_mono." }, { "formal": "rw [ENNReal.toReal_add int_f_ne_top ENNReal.coe_ne_top, ENNReal.coe_toReal]", "informal": "We're rewriting part of the expression using [ENNReal.toReal_add." }, { "formal": "apply Filter.eventually_of_forall fun x => _", "informal": "Here, we apply the theorem/lemma Filter.eventually_of_forall." }, { "formal": "exact fmeas.coe_nnreal_real.aestronglyMeasurable", "informal": "Here, we provide the exact term fmeas.coe_nnreal_real.aestronglyMeasurable that solves our current goal." }, { "formal": "apply Filter.eventually_of_forall fun x => _", "informal": "Here, we apply the theorem/lemma Filter.eventually_of_forall." }, { "formal": "apply gcont.measurable.ennreal_toReal.aemeasurable.aestronglyMeasurable", "informal": "Here, we apply the theorem/lemma gcont.measurable.ennreal_toReal.aemeasurable.aestronglyMeasurable." }, { "formal": "simp_rw [antidiagonalTuple, List.pairwise_bind, List.pairwise_map, List.mem_map,\n forall_exists_index, and_imp, forall_apply_eq_imp_iff\u2082]", "informal": "We're rewriting part of the expression using [antidiagonalTuple,." }, { "formal": "simp only [mem_antidiagonal, Prod.forall, and_imp, forall_apply_eq_imp_iff\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Fin.pi_lex_lt_cons_cons, eq_self_iff_true, true_and_iff, lt_self_iff_false,\n false_or_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [antidiagonal_zero]", "informal": "We're rewriting part of the expression using [antidiagonal_zero]." }, { "formal": "exact List.pairwise_singleton _ _", "informal": "Here, we provide the exact term List.pairwise_singleton that solves our current goal." }, { "formal": "rw [antidiagonal_succ, List.pairwise_cons, List.pairwise_map]", "informal": "We're rewriting part of the expression using [antidiagonal_succ,." }, { "formal": "simp_rw [Nat.succ_inj', Nat.succ_lt_succ_iff]", "informal": "We're rewriting part of the expression using [Nat.succ_inj',." }, { "formal": "exact n_ih", "informal": "Here, we provide the exact term n_ih that solves our current goal." }, { "formal": "rw [List.mem_map, Prod.exists] at hp", "informal": "We're rewriting part of the expression using [List.mem_map,." }, { "formal": "exact Or.inl (Nat.zero_lt_succ _)", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "rw [add_comm, measure_add_diff hm, union_comm]", "informal": "We're rewriting part of the expression using [add_comm,." }, { "formal": "rw [\u2190 iterate_succ_apply, iterate_succ_apply', hx] at this", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro this", "informal": "We introduce new variables this." }, { "formal": "simp [mt isUnit_iff_dvd_one.2 hp.2.1]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [_root_.pow_succ]", "informal": "We're rewriting part of the expression using [_root_.pow_succ]." }, { "formal": "exact finite_mul hp ha (finite_pow hp ha)", "informal": "Here, we provide the exact term finite_mul that solves our current goal." }, { "formal": "cases S", "informal": "We're breaking down the problem into cases based on S." }, { "formal": "simp only [Finset.sum_empty, Int.natAbs_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [his, Finset.sum_insert, not_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact (Int.natAbs_add_le _ _).trans (add_le_add le_rfl IH)", "informal": "Here, we provide the exact term (Int.natAbs_add_le that solves our current goal." }, { "formal": "rw [\u2190\n show _ = pushout.inl from\n colimit.isoColimitCocone_\u03b9_inv \u27e8_, CommRingCat.pushoutCoconeIsColimit f g\u27e9\n WalkingSpan.left,\n hP'.cancel_right_isIso]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "dsimp only [CommRingCat.pushoutCocone_inl, PushoutCocone.\u03b9_app_left]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply hP R T S (TensorProduct R S T)", "informal": "Here, we apply the theorem/lemma hP." }, { "formal": "exact H", "informal": "Here, we provide the exact term H that solves our current goal." }, { "formal": "exact not_lt.symm", "informal": "Here, we provide the exact term not_lt.symm that solves our current goal." }, { "formal": "cases isEmpty_or_nonempty \u03b9", "informal": "We're breaking down the problem into cases based on isEmpty_or_nonempty." }, { "formal": "have H : 0 < finrank R M := by\n rw [\u2190 h]\n exact Fintype.card_pos", "informal": "We're rewriting part of the expression using H." }, { "formal": "have H : 0 < finrank R M := by\n rw [\u2190 h]\n exact Fintype.card_pos", "informal": "Here, we provide the exact term H that solves our current goal." }, { "formal": "rw [map_eq_det_inv_smul _ _ h, units_inv_smul, units_smul_eq_neg_iff, LinearEquiv.coe_det]", "informal": "We're rewriting part of the expression using [map_eq_det_inv_smul." }, { "formal": "simp [LinearMap.det_eq_one_of_finrank_eq_zero H, Module.Ray.ne_neg_self x]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact Fintype.card_pos", "informal": "Here, we provide the exact term Fintype.card_pos that solves our current goal." }, { "formal": "have mvpz : (p : \ud835\udd44) ^ (n + 1) = MvPolynomial.C ((p : \u2124) ^ (n + 1)) := by simp only; norm_cast", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [wittPolyProd, wittPolynomial, AlgHom.map_sum, AlgHom.map_sum]", "informal": "We're rewriting part of the expression using [wittPolyProd,." }, { "formal": "conv_lhs =>\n arg 1\n rw [sum_range_succ, \u2190 C_mul_X_pow_eq_monomial, tsub_self, pow_zero, pow_one, map_mul,\n rename_C, rename_X, \u2190 mvpz]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "conv_lhs =>\n arg 2\n rw [sum_range_succ, \u2190 C_mul_X_pow_eq_monomial, tsub_self, pow_zero, pow_one, map_mul,\n rename_C, rename_X, \u2190 mvpz]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "conv_rhs =>\n enter [1, 1, 2, 2]\n rw [sum_range_succ, \u2190 C_mul_X_pow_eq_monomial, tsub_self, pow_zero, pow_one, map_mul,\n rename_C, rename_X, \u2190 mvpz]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "conv_rhs =>\n enter [1, 2, 2]\n rw [sum_range_succ, \u2190 C_mul_X_pow_eq_monomial, tsub_self, pow_zero, pow_one, map_mul,\n rename_C, rename_X, \u2190 mvpz]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "simp only [add_mul, mul_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [add_comm _ (remainder p n)]", "informal": "We're rewriting part of the expression using [add_comm." }, { "formal": "simp only [add_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply congrArg (Add.add _)", "informal": "Here, we apply the theorem/lemma congrArg." }, { "formal": "simp [*, continuantsAux, nextContinuants, nextDenominator, nextNumerator]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases n <;> rfl", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "exact Algebra.TensorProduct.includeLeftRingHom", "informal": "Here, we provide the exact term Algebra.TensorProduct.includeLeftRingHom that solves our current goal." }, { "formal": "simp only [set_eq_modifyNth, get?_modifyNth_ne _ _ h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Measure.ext fun t ht => ?_", "informal": "Here, we apply the theorem/lemma Measure.ext." }, { "formal": "rw [map_apply h'f ht, withDensity_apply _ (h'f ht), Measure.restrict_apply ht,\n restrict_restrict (h'f ht),\n lintegral_abs_det_fderiv_eq_addHaar_image \u03bc ((h'f ht).inter hs)\n (fun x hx => (hf' x hx.2).mono (inter_subset_right _ _)) (hf.mono (inter_subset_right _ _)),\n image_preimage_inter]", "informal": "Here, we apply the theorem/lemma [map_apply." }, { "formal": "rw [map_apply h'f ht, withDensity_apply _ (h'f ht), Measure.restrict_apply ht,\n restrict_restrict (h'f ht),\n lintegral_abs_det_fderiv_eq_addHaar_image \u03bc ((h'f ht).inter hs)\n (fun x hx => (hf' x hx.2).mono (inter_subset_right _ _)) (hf.mono (inter_subset_right _ _)),\n image_preimage_inter]", "informal": "We're rewriting part of the expression using [map_apply." }, { "formal": "simp [types_id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [exact_iff]", "informal": "We're rewriting part of the expression using [exact_iff]." }, { "formal": "rintro \u27e8-, h\u27e9", "informal": "We introduce new variables \u27e8-,." }, { "formal": "exact zero_of_epi_comp _ h", "informal": "Here, we provide the exact term zero_of_epi_comp that solves our current goal." }, { "formal": "rw [exact_iff]", "informal": "We're rewriting part of the expression using [exact_iff]." }, { "formal": "exact \u27e8by simp, by simp [cokernel.\u03c0_of_epi]\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8by simp, by simp [cokernel.\u03c0_of_epi]\u27e9", "informal": "Here, we provide the exact term \u27e8by that solves our current goal." }, { "formal": "simp [cokernel.\u03c0_of_epi]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact epi_of_cokernel_\u03c0_eq_zero _", "informal": "Here, we provide the exact term epi_of_cokernel_\u03c0_eq_zero that solves our current goal." }, { "formal": "simp only [\u2190 not_nonempty_iff, nonempty_psigma, not_exists]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [smul_mul_assoc, one_mul]", "informal": "We're rewriting part of the expression using [smul_mul_assoc,." }, { "formal": "rw [coeff_mk]", "informal": "We're rewriting part of the expression using [coeff_mk]." }, { "formal": "rw [smul_apply]", "informal": "We're rewriting part of the expression using [smul_apply]." }, { "formal": "rcases mem_divisorsAntidiagonal.1 hi with \u27e8rfl, h\u27e9", "informal": "We're breaking down the problem into cases based on mem_divisorsAntidiagonal.1." }, { "formal": "rw [natCoe_apply, zeta_apply_ne (left_ne_zero_of_mul h), cast_one, one_smul]", "informal": "We're rewriting part of the expression using [natCoe_apply,." }, { "formal": "rw [\u2190 map_div_left_divisors, sum_map, Function.Embedding.coeFn_mk]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 h.mem_ker_map, RingHom.sub_mem_ker_iff, map_repr]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [ball_zero_eq, preimage_metric_ball]", "informal": "We're rewriting part of the expression using [ball_zero_eq,." }, { "formal": "erw [toAdjoinMonic, \u2190 hom_eval\u2082, Ideal.Quotient.eq_zero_iff_mem]", "informal": "We're rewriting part of the expression using [toAdjoinMonic,." }, { "formal": "exact le_maxIdeal k (Ideal.subset_span <| \u27e8_, rfl\u27e9)", "informal": "Here, we provide the exact term le_maxIdeal that solves our current goal." }, { "formal": "cases a <;> decide", "informal": "We're breaking down the problem into cases based on a." }, { "formal": "rw [\u2190 re_add_im \u27eax, y\u27eb, re_inner_eq_norm_add_mul_self_sub_norm_sub_mul_self_div_four,\n im_inner_eq_norm_sub_i_smul_mul_self_sub_norm_add_i_smul_mul_self_div_four]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [sq, \u2190 mul_div_right_comm, \u2190 add_div]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 pow_one X, coeff_C_mul_X_pow]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [\u2190 LinearMap.det_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [norm_iteratedFDeriv_zero] at hd'", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [Asymptotics.IsBigO, Asymptotics.IsBigOWith]", "informal": "We're rewriting part of the expression using [Asymptotics.IsBigO,." }, { "formal": "rw [Real.norm_of_nonneg (zpow_nonneg (norm_nonneg _) _), zpow_neg, \u2190 div_eq_mul_inv, le_div_iff']", "informal": "We're rewriting part of the expression using [Real.norm_of_nonneg." }, { "formal": "rw [PartENat.lt_coe_iff] at hm", "informal": "We're rewriting part of the expression using [PartENat.lt_coe_iff]." }, { "formal": "exact Nat.find_spec hm.fst ((pow_dvd_pow _ hm.snd).trans h)", "informal": "Here, we provide the exact term Nat.find_spec that solves our current goal." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact one M", "informal": "Here, we provide the exact term one that solves our current goal." }, { "formal": "rw [comp\u2082Measurable_eq_mk]", "informal": "We're rewriting part of the expression using [comp\u2082Measurable_eq_mk]." }, { "formal": "apply coeFn_mk", "informal": "Here, we apply the theorem/lemma coeFn_mk." }, { "formal": "apply exists_isSubordinate _ isClosed_univ _ (fun i \u21a6 (chartAt H _).open_source) (fun x _ \u21a6 ?_)", "informal": "Here, we apply the theorem/lemma exists_isSubordinate." }, { "formal": "exact mem_iUnion_of_mem x (mem_chart_source H x)", "informal": "Here, we provide the exact term mem_iUnion_of_mem that solves our current goal." }, { "formal": "constructor <;> intro hx", "informal": "We introduce new variables <;>." }, { "formal": "rw [LinearPMap.mem_graph_iff]", "informal": "We're rewriting part of the expression using [LinearPMap.mem_graph_iff]." }, { "formal": "have hx_fst : x_fst \u2208 g.map (LinearMap.fst R E F) := by\n simp only [mem_map, LinearMap.fst_apply, Prod.exists, exists_and_right, exists_eq_right]\n exact \u27e8x_snd, hx\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hx_fst : x_fst \u2208 g.map (LinearMap.fst R E F) := by\n simp only [mem_map, LinearMap.fst_apply, Prod.exists, exists_and_right, exists_eq_right]\n exact \u27e8x_snd, hx\u27e9", "informal": "Here, we provide the exact term hx_fst that solves our current goal." }, { "formal": "rw [toLinearPMap_apply_aux hg]", "informal": "We're rewriting part of the expression using [toLinearPMap_apply_aux." }, { "formal": "exact (existsUnique_from_graph @hg hx_fst).unique (valFromGraph_mem hg hx_fst) hx", "informal": "Here, we provide the exact term (existsUnique_from_graph that solves our current goal." }, { "formal": "rw [LinearPMap.mem_graph_iff] at hx", "informal": "We're rewriting part of the expression using [LinearPMap.mem_graph_iff]." }, { "formal": "rcases hx with \u27e8y, hx1, hx2\u27e9", "informal": "We're breaking down the problem into cases based on hx." }, { "formal": "exact Prod.ext hx1.symm hx2.symm", "informal": "Here, we provide the exact term Prod.ext that solves our current goal." }, { "formal": "simp only [mem_map, LinearMap.fst_apply, Prod.exists, exists_and_right, exists_eq_right]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8x_snd, hx\u27e9", "informal": "Here, we provide the exact term \u27e8x_snd, that solves our current goal." }, { "formal": "by_cases H : DifferentiableWithinAt \u211d f (Ioi x) x", "informal": "We're breaking down the problem into cases based on H." }, { "formal": "rw [derivWithin_zero_of_not_differentiableWithinAt H,\n derivWithin_zero_of_not_differentiableWithinAt]", "informal": "We're rewriting part of the expression using [derivWithin_zero_of_not_differentiableWithinAt." }, { "formal": "simp [bernoulli, \u2190 mul_assoc, \u2190 sq, \u2190 pow_mul, mul_comm n 2, pow_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply hf.induction_dense hp _ _ _ _ h\u03b5", "informal": "Here, we apply the theorem/lemma hf.induction_dense." }, { "formal": "intro c t ht ht\u03bc \u03b5 h\u03b5", "informal": "We introduce new variables c." }, { "formal": "rcases exists_Lp_half E \u03bc p h\u03b5 with \u27e8\u03b4, \u03b4pos, h\u03b4\u27e9", "informal": "We're breaking down the problem into cases based on exists_Lp_half." }, { "formal": "exact exists_snorm_indicator_le hp c \u03b4pos.ne'", "informal": "Here, we provide the exact term exists_snorm_indicator_le that solves our current goal." }, { "formal": "exact ht.exists_isClosed_diff_lt ht\u03bc.ne h\u03b7_pos'.ne'", "informal": "Here, we provide the exact term ht.exists_isClosed_diff_lt that solves our current goal." }, { "formal": "have I1 : snorm ((s.indicator fun _y => c) - t.indicator fun _y => c) p \u03bc \u2264 \u03b4 := by\n rw [\u2190 snorm_neg, neg_sub, \u2190 indicator_diff st]\n exact h\u03b7 _ \u03bcs.le", "informal": "We're rewriting part of the expression using I1." }, { "formal": "have I1 : snorm ((s.indicator fun _y => c) - t.indicator fun _y => c) p \u03bc \u2264 \u03b4 := by\n rw [\u2190 snorm_neg, neg_sub, \u2190 indicator_diff st]\n exact h\u03b7 _ \u03bcs.le", "informal": "Here, we provide the exact term I1 that solves our current goal." }, { "formal": "rcases exists_continuous_snorm_sub_le_of_closed hp s_closed isOpen_univ (subset_univ _) hs\u03bc.ne c\n \u03b4pos.ne' with\n \u27e8f, f_cont, I2, f_bound, -, f_mem\u27e9", "informal": "We're breaking down the problem into cases based on exists_continuous_snorm_sub_le_of_closed." }, { "formal": "have I3 : snorm (f - t.indicator fun _y => c) p \u03bc \u2264 \u03b5 := by\n convert\n (h\u03b4 _ _\n (f_mem.aestronglyMeasurable.sub\n (aestronglyMeasurable_const.indicator s_closed.measurableSet))\n ((aestronglyMeasurable_const.indicator s_closed.measurableSet).sub\n (aestronglyMeasurable_const.indicator ht))\n I2 I1).le using 2\n simp only [sub_add_sub_cancel]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact (BoundedContinuousFunction.ofNormedAddCommGroup f f_cont _ f_bound).isBounded_range", "informal": "Here, we provide the exact term (BoundedContinuousFunction.ofNormedAddCommGroup that solves our current goal." }, { "formal": "rcases H with \u27e8g, hg, g_cont, g_mem, g_bd\u27e9", "informal": "We're breaking down the problem into cases based on H." }, { "formal": "exact \u27e8\u27e8\u27e8g, g_cont\u27e9, Metric.isBounded_range_iff.1 g_bd\u27e9, hg, g_mem\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e8\u27e8g, that solves our current goal." }, { "formal": "rintro f g \u27e8f_cont, f_mem, f_bd\u27e9 \u27e8g_cont, g_mem, g_bd\u27e9", "informal": "We introduce new variables f." }, { "formal": "exact (f' + g').isBounded_range", "informal": "Here, we provide the exact term (f' that solves our current goal." }, { "formal": "exact fun f \u27e8_, h, _\u27e9 => h.aestronglyMeasurable", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [\u2190 snorm_neg, neg_sub, \u2190 indicator_diff st]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact h\u03b7 _ \u03bcs.le", "informal": "Here, we provide the exact term h\u03b7 that solves our current goal." }, { "formal": "simp only [sub_add_sub_cancel]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Coprime, Coprime, gcd_self_sub_right h]", "informal": "We're rewriting part of the expression using [Coprime,." }, { "formal": "rw [f.support_eq_inter_preimage, \u2190 extChartAt_source I,\n \u2190 (extChartAt I c).symm_image_target_inter_eq', inter_comm,\n ball_inter_range_eq_ball_inter_target]", "informal": "We're rewriting part of the expression using [f.support_eq_inter_preimage,." }, { "formal": "by_cases hp : p = 0", "informal": "We're breaking down the problem into cases based on hp." }, { "formal": "rw [\u2190 Finset.card_image_of_injective _ Subtype.coe_injective, \u2190\n Finset.card_image_of_injective _ inj]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "suffices a.card = b.card + c.card by exact this", "informal": "Here, we provide the exact term a.card that solves our current goal." }, { "formal": "have ha : \u2200 z : \u2102, z \u2208 a \u2194 aeval z p = 0 := by\n intro z; rw [Set.mem_toFinset, mem_rootSet_of_ne hp]", "informal": "We're rewriting part of the expression using ha." }, { "formal": "have ha : \u2200 z : \u2102, z \u2208 a \u2194 aeval z p = 0 := by\n intro z; rw [Set.mem_toFinset, mem_rootSet_of_ne hp]", "informal": "We introduce new variables ha." }, { "formal": "have hc0 :\n \u2200 w : p.rootSet \u2102, galActionHom p \u2102 (restrict p \u2102 (Complex.conjAe.restrictScalars \u211a)) w = w \u2194\n w.val.im = 0 := by\n intro w\n rw [Subtype.ext_iff, galActionHom_restrict]\n exact Complex.conj_eq_iff_im", "informal": "We're rewriting part of the expression using hc0." }, { "formal": "have hc0 :\n \u2200 w : p.rootSet \u2102, galActionHom p \u2102 (restrict p \u2102 (Complex.conjAe.restrictScalars \u211a)) w = w \u2194\n w.val.im = 0 := by\n intro w\n rw [Subtype.ext_iff, galActionHom_restrict]\n exact Complex.conj_eq_iff_im", "informal": "We introduce new variables hc0." }, { "formal": "have hc0 :\n \u2200 w : p.rootSet \u2102, galActionHom p \u2102 (restrict p \u2102 (Complex.conjAe.restrictScalars \u211a)) w = w \u2194\n w.val.im = 0 := by\n intro w\n rw [Subtype.ext_iff, galActionHom_restrict]\n exact Complex.conj_eq_iff_im", "informal": "Here, we provide the exact term hc0 that solves our current goal." }, { "formal": "rw [\u2190 Finset.card_disjoint_union]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "haveI : IsEmpty (p.rootSet \u2102) := by rw [hp, rootSet_zero]; infer_instance", "informal": "We're rewriting part of the expression using :." }, { "formal": "simp_rw [(galActionHom p \u2102 _).support.eq_empty_of_isEmpty, hp, rootSet_zero,\n Set.toFinset_empty, Finset.card_empty]", "informal": "We're rewriting part of the expression using [(galActionHom." }, { "formal": "rw [hp, rootSet_zero]", "informal": "We're rewriting part of the expression using [hp,." }, { "formal": "exact this", "informal": "Here, we provide the exact term this that solves our current goal." }, { "formal": "intro z", "informal": "We introduce new variables z." }, { "formal": "rw [Set.mem_toFinset, mem_rootSet_of_ne hp]", "informal": "We're rewriting part of the expression using [Set.mem_toFinset,." }, { "formal": "intro z", "informal": "We introduce new variables z." }, { "formal": "simp_rw [Finset.mem_image, Set.mem_toFinset, mem_rootSet_of_ne hp]", "informal": "We're rewriting part of the expression using [Finset.mem_image,." }, { "formal": "rintro \u27e8w, hw, rfl\u27e9", "informal": "We introduce new variables \u27e8w,." }, { "formal": "exact \u27e8by rw [aeval_algHom_apply, hw, AlgHom.map_zero], rfl\u27e9", "informal": "We're rewriting part of the expression using \u27e8by." }, { "formal": "exact \u27e8by rw [aeval_algHom_apply, hw, AlgHom.map_zero], rfl\u27e9", "informal": "Here, we provide the exact term \u27e8by that solves our current goal." }, { "formal": "rw [aeval_algHom_apply, hw, AlgHom.map_zero]", "informal": "We're rewriting part of the expression using [aeval_algHom_apply,." }, { "formal": "rintro \u27e8hz1, hz2\u27e9", "informal": "We introduce new variables \u27e8hz1,." }, { "formal": "have key : IsScalarTower.toAlgHom \u211a \u211d \u2102 z.re = z := by ext; rfl; rw [hz2]; rfl", "informal": "We're rewriting part of the expression using key." }, { "formal": "exact \u27e8z.re, inj (by rwa [\u2190 aeval_algHom_apply, key, AlgHom.map_zero]), key\u27e9", "informal": "Here, we provide the exact term \u27e8z.re, that solves our current goal." }, { "formal": "rw [hz2]", "informal": "We're rewriting part of the expression using [hz2]." }, { "formal": "intro w", "informal": "We introduce new variables w." }, { "formal": "rw [Subtype.ext_iff, galActionHom_restrict]", "informal": "We're rewriting part of the expression using [Subtype.ext_iff,." }, { "formal": "exact Complex.conj_eq_iff_im", "informal": "Here, we provide the exact term Complex.conj_eq_iff_im that solves our current goal." }, { "formal": "intro z", "informal": "We introduce new variables z." }, { "formal": "simp_rw [Finset.mem_image]", "informal": "We're rewriting part of the expression using [Finset.mem_image]." }, { "formal": "rintro \u27e8w, hw, rfl\u27e9", "informal": "We introduce new variables \u27e8w,." }, { "formal": "exact \u27e8(mem_rootSet.mp w.2).2, mt (hc0 w).mpr (Equiv.Perm.mem_support.mp hw)\u27e9", "informal": "Here, we provide the exact term \u27e8(mem_rootSet.mp that solves our current goal." }, { "formal": "rintro \u27e8hz1, hz2\u27e9", "informal": "We introduce new variables \u27e8hz1,." }, { "formal": "exact \u27e8\u27e8z, mem_rootSet.mpr \u27e8hp, hz1\u27e9\u27e9, Equiv.Perm.mem_support.mpr (mt (hc0 _).mp hz2), rfl\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e8z, that solves our current goal." }, { "formal": "apply congr_arg Finset.card", "informal": "Here, we apply the theorem/lemma congr_arg." }, { "formal": "simp_rw [Finset.ext_iff, Finset.mem_union, ha, hb, hc]", "informal": "We're rewriting part of the expression using [Finset.ext_iff,." }, { "formal": "rw [Finset.disjoint_left]", "informal": "We're rewriting part of the expression using [Finset.disjoint_left]." }, { "formal": "intro z", "informal": "We introduce new variables z." }, { "formal": "rw [hb, hc]", "informal": "We're rewriting part of the expression using [hb,." }, { "formal": "classical\nfunext x\nsimp only [not_exists, extend_def, Pi.inv_apply, apply_dite Inv.inv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [not_exists, extend_def, Pi.inv_apply, apply_dite Inv.inv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases t", "informal": "We're breaking down the problem into cases based on t." }, { "formal": "apply Nat.succ_pos", "informal": "Here, we apply the theorem/lemma Nat.succ_pos." }, { "formal": "intro a ha", "informal": "We introduce new variables a." }, { "formal": "simp_rw [balancedHull, smul_set_iUnion\u2082, subset_def, mem_iUnion\u2082]", "informal": "We're rewriting part of the expression using [balancedHull,." }, { "formal": "rintro x \u27e8r, hr, hx\u27e9", "informal": "We introduce new variables x." }, { "formal": "rw [\u2190 smul_assoc] at hx", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact \u27e8a \u2022 r, (SeminormedRing.norm_mul _ _).trans (mul_le_one ha (norm_nonneg r) hr), hx\u27e9", "informal": "Here, we provide the exact term \u27e8a that solves our current goal." }, { "formal": "apply ContinuousLinearMap.op_norm_le_bound", "informal": "Here, we apply the theorem/lemma ContinuousLinearMap.op_norm_le_bound." }, { "formal": "apply LinearMap.bound_of_ball_bound' r_pos", "informal": "Here, we apply the theorem/lemma LinearMap.bound_of_ball_bound'." }, { "formal": "exact fun z hz => h z hz", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "apply div_nonneg _ r_pos.le", "informal": "Here, we apply the theorem/lemma div_nonneg." }, { "formal": "exact\n (norm_nonneg _).trans\n (h 0 (by simp only [norm_zero, mem_closedBall, dist_zero_left, r_pos.le]))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [norm_zero, mem_closedBall, dist_zero_left, r_pos.le]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [append_inj (cons.inj h).2 (Nat.succ.inj hl)] at h \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "convert eq_orthogonalProjection_of_mem_orthogonal (K := K) _ _ <;> simp [hv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [piecewise]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [tendsto_const_mul_atBot_iff, h, h.not_tendsto disjoint_atBot_atTop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp (config := { zeta := false }) only [not_lt, not_eventually, nonpos_iff_eq_zero] at hs", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have h : v.FineSubfamilyOn f s := by\n intro x hx \u03b5 \u03b5pos\n rw [hs] at hx\n simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx\n rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9\n exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "We're rewriting part of the expression using h." }, { "formal": "have h : v.FineSubfamilyOn f s := by\n intro x hx \u03b5 \u03b5pos\n rw [hs] at hx\n simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx\n rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9\n exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "have h : v.FineSubfamilyOn f s := by\n intro x hx \u03b5 \u03b5pos\n rw [hs] at hx\n simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx\n rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9\n exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "We introduce new variables h." }, { "formal": "have h : v.FineSubfamilyOn f s := by\n intro x hx \u03b5 \u03b5pos\n rw [hs] at hx\n simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx\n rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9\n exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have h : v.FineSubfamilyOn f s := by\n intro x hx \u03b5 \u03b5pos\n rw [hs] at hx\n simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx\n rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9\n exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "calc\n \u03bc s \u2264 \u2211' x : h.index, \u03bc (h.covering x) := h.measure_le_tsum\n _ = \u2211' x : h.index, 0 := by congr; ext1 x; exact h.covering_mem x.2\n _ = 0 := by simp only [tsum_zero, add_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "calc\n \u03bc s \u2264 \u2211' x : h.index, \u03bc (h.covering x) := h.measure_le_tsum\n _ = \u2211' x : h.index, 0 := by congr; ext1 x; exact h.covering_mem x.2\n _ = 0 := by simp only [tsum_zero, add_zero]", "informal": "Here, we provide the exact term \u03bc that solves our current goal." }, { "formal": "intro x hx \u03b5 \u03b5pos", "informal": "We introduce new variables x." }, { "formal": "rw [hs] at hx", "informal": "We're rewriting part of the expression using [hs]." }, { "formal": "simp only [frequently_filterAt_iff, exists_prop, gt_iff_lt, mem_setOf_eq] at hx", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases hx \u03b5 \u03b5pos with \u27e8a, a_sets, ax, \u03bca\u27e9", "informal": "We're breaking down the problem into cases based on hx." }, { "formal": "exact \u27e8a, \u27e8a_sets, \u03bca\u27e9, ax\u27e9", "informal": "Here, we provide the exact term \u27e8a, that solves our current goal." }, { "formal": "exact h.covering_mem x.2", "informal": "Here, we provide the exact term h.covering_mem that solves our current goal." }, { "formal": "simp only [tsum_zero, add_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [log_mul_base hb (Nat.div_pos h (zero_le_one.trans_lt hb)).ne', log_div_base,\n tsub_add_cancel_of_le (succ_le_iff.2 <| log_pos hb h)]", "informal": "We're rewriting part of the expression using [log_mul_base." }, { "formal": "rw [log_of_left_le_one hb, log_of_left_le_one hb]", "informal": "We're rewriting part of the expression using [log_of_left_le_one." }, { "formal": "rw [div_eq_of_lt h, zero_mul, log_zero_right, log_of_lt h]", "informal": "We're rewriting part of the expression using [div_eq_of_lt." }, { "formal": "rw [orderOf, \u2190 comp_mul_left]", "informal": "We're rewriting part of the expression using [orderOf,." }, { "formal": "exact Function.Commute.minimalPeriod_of_comp_dvd_lcm h.function_commute_mul_left", "informal": "Here, we provide the exact term Function.Commute.minimalPeriod_of_comp_dvd_lcm that solves our current goal." }, { "formal": "rw [PowerBasis.trace_gen_eq_nextCoeff_minpoly, RingHom.map_neg, \u2190\n nextCoeff_map (algebraMap K F).injective,\n sum_roots_eq_nextCoeff_of_monic_of_split ((minpoly.monic (PowerBasis.isIntegral_gen _)).map _)\n ((splits_id_iff_splits _).2 hf),\n neg_neg]", "informal": "We're rewriting part of the expression using [PowerBasis.trace_gen_eq_nextCoeff_minpoly,." }, { "formal": "rw [modEq_iff_dvd, Int.ofNat_add, Int.ofNat_add, add_sub_add_comm]", "informal": "We're rewriting part of the expression using [modEq_iff_dvd,." }, { "formal": "exact dvd_add h\u2081.dvd h\u2082.dvd", "informal": "Here, we provide the exact term dvd_add that solves our current goal." }, { "formal": "simp only [exact_iff, \u2190 F.map_eq_zero_iff, F.map_comp, Category.assoc, \u2190\n kernelComparison_comp_\u03b9 g F, \u2190 \u03c0_comp_cokernelComparison f F]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [IsIso.comp_left_eq_zero (kernelComparison g F), \u2190 Category.assoc,\n IsIso.comp_right_eq_zero _ (cokernelComparison f F)]", "informal": "We're rewriting part of the expression using [IsIso.comp_left_eq_zero." }, { "formal": "simp [padicValRat]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [le_sub_iff_add_le]", "informal": "We're rewriting part of the expression using [le_sub_iff_add_le]." }, { "formal": "rw [exp_log hx]", "informal": "We're rewriting part of the expression using [exp_log." }, { "formal": "simp_rw [Set.range, Set.mem_setOf_eq, Ne.def, Option.eq_none_iff_forall_not_mem,\n Encodable.mem_decode\u2082, not_forall, not_not]", "informal": "We're rewriting part of the expression using [Set.range,." }, { "formal": "simp only [wittPolynomial_eq_sum_C_mul_X_pow, sum_range_succ_comm, range_one, sum_singleton,\n one_mul, pow_one, C_1, pow_zero, tsub_self, tsub_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [comap, dif_pos hf]", "informal": "We're rewriting part of the expression using [comap,." }, { "formal": "simp_rw [_root_.isCompl_iff, disjoint_iff, codisjoint_iff, forall_and]", "informal": "We're rewriting part of the expression using [_root_.isCompl_iff,." }, { "formal": "cases n", "informal": "We're breaking down the problem into cases based on n." }, { "formal": "cases NeZero.ne 0 rfl", "informal": "We're breaking down the problem into cases based on NeZero.ne." }, { "formal": "have := le_refl I.radical", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "exact \u27e8n, by rwa [\u2190 Ideal.span, span_singleton_pow, span_le, Set.singleton_subset_iff]\u27e9", "informal": "Here, we provide the exact term \u27e8n, that solves our current goal." }, { "formal": "intro J K hJ hK hJK", "informal": "We introduce new variables J." }, { "formal": "rw [\u2190 Ideal.add_eq_sup, add_pow, Ideal.sum_eq_sup, Finset.sup_le_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply Ideal.mul_le_right.trans ((Ideal.pow_le_pow h).trans hn)", "informal": "Here, we apply the theorem/lemma Ideal.mul_le_right.trans." }, { "formal": "apply Ideal.mul_le_left.trans", "informal": "Here, we apply the theorem/lemma Ideal.mul_le_left.trans." }, { "formal": "rw [add_comm, Nat.add_sub_assoc h.le]", "informal": "We're rewriting part of the expression using [add_comm,." }, { "formal": "apply Nat.le_add_right", "informal": "Here, we apply the theorem/lemma Nat.le_add_right." }, { "formal": "rintro \u27e8u, rfl\u27e9", "informal": "We introduce new variables \u27e8u,." }, { "formal": "rw [\u2190 pure_mul_pure, \u2190 ha, \u2190 hb]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact u.inv_mul", "informal": "Here, we provide the exact term u.inv_mul that solves our current goal." }, { "formal": "rintro \u27e8a, rfl, ha\u27e9", "informal": "We introduce new variables \u27e8a,." }, { "formal": "exact ha.filter", "informal": "Here, we provide the exact term ha.filter that solves our current goal." }, { "formal": "classical\nsuffices\n \u2203 g, StronglyMeasurable[\u2a06 n, \u2131 n] g \u2227 \u2200\u1d50 \u03c9 \u2202\u03bc, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) by\n rw [limitProcess, dif_pos this]\n exact (Classical.choose_spec this).2\nset g' : \u03a9 \u2192 \u211d := fun \u03c9 => if h : \u2203 c, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd c) then h.choose else 0\nhave hle : \u2a06 n, \u2131 n \u2264 m0 := sSup_le fun m \u27e8n, hn\u27e9 => hn \u25b8 \u2131.le _\nhave hg' : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g' \u03c9)) := by\n filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with \u03c9 h\u03c9\n simp_rw [dif_pos h\u03c9]\n exact h\u03c9.choose_spec\nhave hg'm : @AEStronglyMeasurable _ _ _ (\u2a06 n, \u2131 n) g' (\u03bc.trim hle) :=\n (@aemeasurable_of_tendsto_metrizable_ae' _ _ (\u2a06 n, \u2131 n) _ _ _ _ _ _ _\n (fun n => ((hf.stronglyMeasurable n).measurable.mono (le_sSup \u27e8n, rfl\u27e9 : \u2131 n \u2264 \u2a06 n, \u2131 n)\n le_rfl).aemeasurable) hg').aestronglyMeasurable\nobtain \u27e8g, hgm, hae\u27e9 := hg'm\nhave hg : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) := by\n filter_upwards [hae, hg'] with \u03c9 h\u03c9 hg'\u03c9\n exact h\u03c9 \u25b8 hg'\u03c9\nexact \u27e8g, hgm, measure_eq_zero_of_trim_eq_zero hle hg\u27e9", "informal": "We're rewriting part of the expression using suffices." }, { "formal": "classical\nsuffices\n \u2203 g, StronglyMeasurable[\u2a06 n, \u2131 n] g \u2227 \u2200\u1d50 \u03c9 \u2202\u03bc, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) by\n rw [limitProcess, dif_pos this]\n exact (Classical.choose_spec this).2\nset g' : \u03a9 \u2192 \u211d := fun \u03c9 => if h : \u2203 c, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd c) then h.choose else 0\nhave hle : \u2a06 n, \u2131 n \u2264 m0 := sSup_le fun m \u27e8n, hn\u27e9 => hn \u25b8 \u2131.le _\nhave hg' : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g' \u03c9)) := by\n filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with \u03c9 h\u03c9\n simp_rw [dif_pos h\u03c9]\n exact h\u03c9.choose_spec\nhave hg'm : @AEStronglyMeasurable _ _ _ (\u2a06 n, \u2131 n) g' (\u03bc.trim hle) :=\n (@aemeasurable_of_tendsto_metrizable_ae' _ _ (\u2a06 n, \u2131 n) _ _ _ _ _ _ _\n (fun n => ((hf.stronglyMeasurable n).measurable.mono (le_sSup \u27e8n, rfl\u27e9 : \u2131 n \u2264 \u2a06 n, \u2131 n)\n le_rfl).aemeasurable) hg').aestronglyMeasurable\nobtain \u27e8g, hgm, hae\u27e9 := hg'm\nhave hg : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) := by\n filter_upwards [hae, hg'] with \u03c9 h\u03c9 hg'\u03c9\n exact h\u03c9 \u25b8 hg'\u03c9\nexact \u27e8g, hgm, measure_eq_zero_of_trim_eq_zero hle hg\u27e9", "informal": "Here, we provide the exact term suffices that solves our current goal." }, { "formal": "suffices\n \u2203 g, StronglyMeasurable[\u2a06 n, \u2131 n] g \u2227 \u2200\u1d50 \u03c9 \u2202\u03bc, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) by\n rw [limitProcess, dif_pos this]\n exact (Classical.choose_spec this).2", "informal": "We're rewriting part of the expression using \u2203." }, { "formal": "suffices\n \u2203 g, StronglyMeasurable[\u2a06 n, \u2131 n] g \u2227 \u2200\u1d50 \u03c9 \u2202\u03bc, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) by\n rw [limitProcess, dif_pos this]\n exact (Classical.choose_spec this).2", "informal": "Here, we provide the exact term \u2203 that solves our current goal." }, { "formal": "have hg' : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g' \u03c9)) := by\n filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with \u03c9 h\u03c9\n simp_rw [dif_pos h\u03c9]\n exact h\u03c9.choose_spec", "informal": "We're rewriting part of the expression using hg'." }, { "formal": "have hg' : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g' \u03c9)) := by\n filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with \u03c9 h\u03c9\n simp_rw [dif_pos h\u03c9]\n exact h\u03c9.choose_spec", "informal": "Here, we provide the exact term hg' that solves our current goal." }, { "formal": "have hg : \u2200\u1d50 \u03c9 \u2202\u03bc.trim hle, Tendsto (fun n => f n \u03c9) atTop (\ud835\udcdd (g \u03c9)) := by\n filter_upwards [hae, hg'] with \u03c9 h\u03c9 hg'\u03c9\n exact h\u03c9 \u25b8 hg'\u03c9", "informal": "Here, we provide the exact term hg that solves our current goal." }, { "formal": "exact \u27e8g, hgm, measure_eq_zero_of_trim_eq_zero hle hg\u27e9", "informal": "Here, we provide the exact term \u27e8g, that solves our current goal." }, { "formal": "rw [limitProcess, dif_pos this]", "informal": "We're rewriting part of the expression using [limitProcess,." }, { "formal": "exact (Classical.choose_spec this).2", "informal": "Here, we provide the exact term (Classical.choose_spec that solves our current goal." }, { "formal": "simp_rw [dif_pos h\u03c9]", "informal": "We're rewriting part of the expression using [dif_pos." }, { "formal": "exact h\u03c9.choose_spec", "informal": "Here, we provide the exact term h\u03c9.choose_spec that solves our current goal." }, { "formal": "exact h\u03c9 \u25b8 hg'\u03c9", "informal": "Here, we provide the exact term h\u03c9 that solves our current goal." }, { "formal": "apply HasDerivWithinAt.mono_of_mem h", "informal": "Here, we apply the theorem/lemma HasDerivWithinAt.mono_of_mem." }, { "formal": "apply ContinuousWithinAt.preimage_mem_nhdsWithin'' _ hst (by simp)", "informal": "Here, we apply the theorem/lemma ContinuousWithinAt.preimage_mem_nhdsWithin''." }, { "formal": "apply Continuous.continuousWithinAt", "informal": "Here, we apply the theorem/lemma Continuous.continuousWithinAt." }, { "formal": "simp_rw [Finsupp.single_le_iff, Nat.one_le_iff_ne_zero, Finsupp.single_apply_ne_zero,\n and_true_iff]", "informal": "We're rewriting part of the expression using [Finsupp.single_le_iff,." }, { "formal": "simp [rpow_eq_top_iff, hy, asymm hy]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Algebra.FiniteType.of_restrictScalars_finiteType A B C", "informal": "Here, we provide the exact term Algebra.FiniteType.of_restrictScalars_finiteType that solves our current goal." }, { "formal": "rw [iSup, Mf.map_csSup_of_continuousAt Cf (range_nonempty _) H, \u2190 range_comp, iSup]", "informal": "We're rewriting part of the expression using [iSup,." }, { "formal": "rw [\u2190 mul_one x, \u2190 smul_eq_mul, f.map_smul\u209b\u2097, g.map_smul\u209b\u2097, h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [ofGroup, ReducedWord.prod, of_smul_eq_smul, group_smul_def]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [prod_cons, \u2190 mul_assoc, mul_smul, ih, mul_smul, t_pow_smul_eq_unitsSMul,\n of_smul_eq_smul, unitsSMul]", "informal": "We're rewriting part of the expression using [prod_cons,." }, { "formal": "rw [dif_neg (not_cancels_of_cons_hyp u w h2)]", "informal": "We're rewriting part of the expression using [dif_neg." }, { "formal": "simp only [unitsSMulGroup]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [(d.compl _).equiv_fst_eq_one_of_mem_of_one_mem (one_mem _) h1]", "informal": "We're rewriting part of the expression using [(d.compl." }, { "formal": "erw [(d.compl _).equiv_snd_eq_inv_mul]", "informal": "We're rewriting part of the expression using [(d.compl." }, { "formal": "erw [(d.compl _).equiv_fst_eq_one_of_mem_of_one_mem (one_mem _) h1]", "informal": "We're rewriting part of the expression using [(d.compl." }, { "formal": "rcases eq_empty_or_nonempty s with (rfl | hne)", "informal": "We're breaking down the problem into cases based on eq_empty_or_nonempty." }, { "formal": "apply lt_irrefl (infDist x s)", "informal": "Here, we apply the theorem/lemma lt_irrefl." }, { "formal": "apply lt_irrefl (infDist x s)", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "calc\n infDist x s \u2264 dist x y := infDist_le_dist_of_mem ys\n _ \u2264 (1 / 2) ^ n := by\n rw [mem_cylinder_comm] at hy\n exact mem_cylinder_iff_dist_le.1 hy\n _ < infDist x s := hn", "informal": "We're rewriting part of the expression using infDist." }, { "formal": "calc\n infDist x s \u2264 dist x y := infDist_le_dist_of_mem ys\n _ \u2264 (1 / 2) ^ n := by\n rw [mem_cylinder_comm] at hy\n exact mem_cylinder_iff_dist_le.1 hy\n _ < infDist x s := hn", "informal": "Here, we provide the exact term infDist that solves our current goal." }, { "formal": "exact \u27e80, by simp\u27e9", "informal": "Here, we provide the exact term \u27e80, that solves our current goal." }, { "formal": "rw [mem_cylinder_comm] at hy", "informal": "We're rewriting part of the expression using [mem_cylinder_comm]." }, { "formal": "exact mem_cylinder_iff_dist_le.1 hy", "informal": "Here, we provide the exact term mem_cylinder_iff_dist_le.1 that solves our current goal." }, { "formal": "rw [\u2190 adjugate_transpose, \u2190 transpose_mul, transpose_transpose]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [mul_adjugate A\u1d40, det_transpose, transpose_smul, transpose_one]", "informal": "We're rewriting part of the expression using [mul_adjugate." }, { "formal": "have h0 : p \u2260 0 := by\n rintro \u27e8\u27e9\n exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "We introduce new variables h0." }, { "formal": "have h0 : p \u2260 0 := by\n rintro \u27e8\u27e9\n exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "Here, we provide the exact term h0 that solves our current goal." }, { "formal": "have h1 : p \u2260 1 := by\n rintro \u27e8\u27e9\n exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "We introduce new variables h1." }, { "formal": "have h1 : p \u2260 1 := by\n rintro \u27e8\u27e9\n exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "Here, we provide the exact term h1 that solves our current goal." }, { "formal": "have order_of_a : orderOf a = p - 1 := by\n apply orderOf_eq_of_pow_and_pow_div_prime _ ha hd\n exact tsub_pos_of_lt hp1", "informal": "Here, we apply the theorem/lemma order_of_a." }, { "formal": "have order_of_a : orderOf a = p - 1 := by\n apply orderOf_eq_of_pow_and_pow_div_prime _ ha hd\n exact tsub_pos_of_lt hp1", "informal": "Here, we provide the exact term order_of_a that solves our current goal." }, { "formal": "rw [Nat.prime_iff_card_units]", "informal": "We're rewriting part of the expression using [Nat.prime_iff_card_units]." }, { "formal": "let a' : (ZMod p)\u02e3 := Units.mkOfMulEqOne a (a ^ (p - 2)) (by rw [\u2190 pow_succ, hp', ha])", "informal": "We're rewriting part of the expression using a'." }, { "formal": "rintro \u27e8\u27e9", "informal": "We introduce new variables \u27e8\u27e9." }, { "formal": "exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "Here, we provide the exact term hd that solves our current goal." }, { "formal": "rintro \u27e8\u27e9", "informal": "We introduce new variables \u27e8\u27e9." }, { "formal": "exact hd 2 Nat.prime_two (dvd_zero _) (pow_zero _)", "informal": "Here, we provide the exact term hd that solves our current goal." }, { "formal": "apply orderOf_eq_of_pow_and_pow_div_prime _ ha hd", "informal": "Here, we apply the theorem/lemma orderOf_eq_of_pow_and_pow_div_prime." }, { "formal": "exact tsub_pos_of_lt hp1", "informal": "Here, we provide the exact term tsub_pos_of_lt that solves our current goal." }, { "formal": "rw [\u2190 pow_succ, hp', ha]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [angle_add_eq_arcsin_of_inner_eq_zero h (Or.inl h0), Real.arctan_eq_arcsin, \u2190\n div_mul_eq_div_div, norm_add_eq_sqrt_iff_real_inner_eq_zero.2 h]", "informal": "We're rewriting part of the expression using [angle_add_eq_arcsin_of_inner_eq_zero." }, { "formal": "nth_rw 3 [\u2190 Real.sqrt_sq (norm_nonneg x)]", "informal": "We're rewriting part of the expression using 3." }, { "formal": "by_cases h : r\u2081 = 0", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "simp [lineMap_apply, smul_smul, ((hr\u2081.lt_of_ne' h).trans_le hr\u2082).ne.symm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [swap_mul_eq_mul_swap, Perm.inv_apply_self, Perm.inv_apply_self]", "informal": "We're rewriting part of the expression using [swap_mul_eq_mul_swap,." }, { "formal": "rw [union_comm, inter_comm, measure_union_add_inter t hs, add_comm]", "informal": "We're rewriting part of the expression using [union_comm,." }, { "formal": "rw [\u2190 prod_cyclotomic'_eq_X_pow_sub_one hpos h, \u2190 Nat.cons_self_properDivisors hpos.ne',\n Finset.prod_cons]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have prod_monic : (\u220f i in Nat.properDivisors n, cyclotomic' i K).Monic := by\n apply monic_prod_of_monic\n intro i _\n exact cyclotomic'.monic i K", "informal": "Here, we apply the theorem/lemma prod_monic." }, { "formal": "have prod_monic : (\u220f i in Nat.properDivisors n, cyclotomic' i K).Monic := by\n apply monic_prod_of_monic\n intro i _\n exact cyclotomic'.monic i K", "informal": "We introduce new variables prod_monic." }, { "formal": "have prod_monic : (\u220f i in Nat.properDivisors n, cyclotomic' i K).Monic := by\n apply monic_prod_of_monic\n intro i _\n exact cyclotomic'.monic i K", "informal": "Here, we provide the exact term prod_monic that solves our current goal." }, { "formal": "rw [(div_modByMonic_unique (cyclotomic' n K) 0 prod_monic _).1]", "informal": "We're rewriting part of the expression using [(div_modByMonic_unique." }, { "formal": "simp only [degree_zero, zero_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "refine' \u27e8by rw [mul_comm], _\u27e9", "informal": "We're rewriting part of the expression using \u27e8by." }, { "formal": "rw [bot_lt_iff_ne_bot]", "informal": "We're rewriting part of the expression using [bot_lt_iff_ne_bot]." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "exact Monic.ne_zero prod_monic (degree_eq_bot.1 h)", "informal": "Here, we provide the exact term Monic.ne_zero that solves our current goal." }, { "formal": "apply monic_prod_of_monic", "informal": "Here, we apply the theorem/lemma monic_prod_of_monic." }, { "formal": "intro i _", "informal": "We introduce new variables i." }, { "formal": "exact cyclotomic'.monic i K", "informal": "Here, we provide the exact term cyclotomic'.monic that solves our current goal." }, { "formal": "rw [mul_comm]", "informal": "We're rewriting part of the expression using [mul_comm]." }, { "formal": "simp [limsup]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [pow_mul (-1 : \u2102), neg_one_sq, one_pow, one_mul]", "informal": "We're rewriting part of the expression using [pow_mul." }, { "formal": "rw [pow_add, pow_one]", "informal": "We're rewriting part of the expression using [pow_add,." }, { "formal": "rw [ofReal_mul]", "informal": "We're rewriting part of the expression using [ofReal_mul]." }, { "formal": "rw [\u2190 mul_div]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [ofReal_div, ofReal_one, ofReal_pow]", "informal": "We're rewriting part of the expression using [ofReal_div,." }, { "formal": "rw [ofReal_cos, ofReal_mul, fourier_coe_apply, fourier_coe_apply, cos, ofReal_one, div_one,\n div_one, ofReal_mul, ofReal_mul, ofReal_two, Int.cast_neg, Int.cast_ofNat,\n ofReal_nat_cast]", "informal": "We're rewriting part of the expression using [ofReal_cos,." }, { "formal": "rw [ofReal_mul, ofReal_div, ofReal_div, ofReal_mul, ofReal_pow, ofReal_pow, ofReal_neg,\n ofReal_nat_cast, ofReal_mul, ofReal_two, ofReal_one]", "informal": "We're rewriting part of the expression using [ofReal_mul,." }, { "formal": "rw [bernoulliFun]", "informal": "We're rewriting part of the expression using [bernoulliFun]." }, { "formal": "simp [coeff_erase, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [aa, ext fun n => h (n+1)]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190zero_add 1, lt_add_one_iff] at hp", "informal": "We're rewriting part of the expression using [\u2190zero_add." }, { "formal": "exact hp.antisymm hn", "informal": "Here, we provide the exact term hp.antisymm that solves our current goal." }, { "formal": "rw [mem_Icc, Real.toNNReal_of_nonpos hy\u2080, nonpos_iff_eq_zero] at hz", "informal": "We're rewriting part of the expression using [mem_Icc,." }, { "formal": "exact \u27e8y, hy, (toNNReal_of_nonpos hy\u2080).trans hz.2.symm\u27e9", "informal": "Here, we provide the exact term \u27e8y, that solves our current goal." }, { "formal": "rw [toNNReal_coe] at hz", "informal": "We're rewriting part of the expression using [toNNReal_coe]." }, { "formal": "exact \u27e8z, h.out hx hy \u27e8toNNReal_le_iff_le_coe.1 hz.1, hz.2\u27e9, toNNReal_coe\u27e9", "informal": "Here, we provide the exact term \u27e8z, that solves our current goal." }, { "formal": "simp [irreducible_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [filter_eq, prod_replicate]", "informal": "We're rewriting part of the expression using [filter_eq,." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "simp [collinear_pair] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [imageToKernel']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have h : \u27eax, (A\u2020 * A) x\u27eb = \u27eaA x, A x\u27eb := by rw [\u2190 adjoint_inner_right]; rfl", "informal": "We're rewriting part of the expression using h." }, { "formal": "rw [h, \u2190 inner_self_eq_norm_sq (\ud835\udd5c := \ud835\udd5c) _]", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "rw [\u2190 adjoint_inner_right]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [Filter.Frequently, hl.eventually_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "classical\nrw [nthRootsFinset, \u2190 Multiset.toFinset_eq (IsPrimitiveRoot.nthRoots_nodup h)]\nsimp only [Finset.prod_mk, RingHom.map_one]\nrw [nthRoots]\nhave hmonic : (X ^ n - C (1 : R)).Monic := monic_X_pow_sub_C (1 : R) (ne_of_lt hpos).symm\nsymm\napply prod_multiset_X_sub_C_of_monic_of_roots_card_eq hmonic\nrw [@natDegree_X_pow_sub_C R _ _ n 1, \u2190 nthRoots]\nexact IsPrimitiveRoot.card_nthRoots h", "informal": "Here, we apply the theorem/lemma rw." }, { "formal": "classical\nrw [nthRootsFinset, \u2190 Multiset.toFinset_eq (IsPrimitiveRoot.nthRoots_nodup h)]\nsimp only [Finset.prod_mk, RingHom.map_one]\nrw [nthRoots]\nhave hmonic : (X ^ n - C (1 : R)).Monic := monic_X_pow_sub_C (1 : R) (ne_of_lt hpos).symm\nsymm\napply prod_multiset_X_sub_C_of_monic_of_roots_card_eq hmonic\nrw [@natDegree_X_pow_sub_C R _ _ n 1, \u2190 nthRoots]\nexact IsPrimitiveRoot.card_nthRoots h", "informal": "We're rewriting part of the expression using rw." }, { "formal": "classical\nrw [nthRootsFinset, \u2190 Multiset.toFinset_eq (IsPrimitiveRoot.nthRoots_nodup h)]\nsimp only [Finset.prod_mk, RingHom.map_one]\nrw [nthRoots]\nhave hmonic : (X ^ n - C (1 : R)).Monic := monic_X_pow_sub_C (1 : R) (ne_of_lt hpos).symm\nsymm\napply prod_multiset_X_sub_C_of_monic_of_roots_card_eq hmonic\nrw [@natDegree_X_pow_sub_C R _ _ n 1, \u2190 nthRoots]\nexact IsPrimitiveRoot.card_nthRoots h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "classical\nrw [nthRootsFinset, \u2190 Multiset.toFinset_eq (IsPrimitiveRoot.nthRoots_nodup h)]\nsimp only [Finset.prod_mk, RingHom.map_one]\nrw [nthRoots]\nhave hmonic : (X ^ n - C (1 : R)).Monic := monic_X_pow_sub_C (1 : R) (ne_of_lt hpos).symm\nsymm\napply prod_multiset_X_sub_C_of_monic_of_roots_card_eq hmonic\nrw [@natDegree_X_pow_sub_C R _ _ n 1, \u2190 nthRoots]\nexact IsPrimitiveRoot.card_nthRoots h", "informal": "Here, we provide the exact term rw that solves our current goal." }, { "formal": "rw [nthRootsFinset, \u2190 Multiset.toFinset_eq (IsPrimitiveRoot.nthRoots_nodup h)]", "informal": "We're rewriting part of the expression using [nthRootsFinset,." }, { "formal": "simp only [Finset.prod_mk, RingHom.map_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [nthRoots]", "informal": "We're rewriting part of the expression using [nthRoots]." }, { "formal": "apply prod_multiset_X_sub_C_of_monic_of_roots_card_eq hmonic", "informal": "Here, we apply the theorem/lemma prod_multiset_X_sub_C_of_monic_of_roots_card_eq." }, { "formal": "rw [@natDegree_X_pow_sub_C R _ _ n 1, \u2190 nthRoots]", "informal": "We're rewriting part of the expression using [@natDegree_X_pow_sub_C." }, { "formal": "exact IsPrimitiveRoot.card_nthRoots h", "informal": "Here, we provide the exact term IsPrimitiveRoot.card_nthRoots that solves our current goal." }, { "formal": "simp [image\u2082, and_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases hm : m \u2264 m0", "informal": "We're breaking down the problem into cases based on hm." }, { "formal": "by_cases h\u03bcm : SigmaFinite (\u03bc.trim hm)", "informal": "We're breaking down the problem into cases based on h\u03bcm." }, { "formal": "rw [condexp_of_sigmaFinite, if_neg hf]", "informal": "We're rewriting part of the expression using [condexp_of_sigmaFinite,." }, { "formal": "rw [condexp_of_not_le hm]", "informal": "We're rewriting part of the expression using [condexp_of_not_le." }, { "formal": "rw [condexp_of_not_sigmaFinite hm h\u03bcm]", "informal": "We're rewriting part of the expression using [condexp_of_not_sigmaFinite." }, { "formal": "intro n", "informal": "We introduce new variables n." }, { "formal": "simp [this, T_mul m, \u2190 T_mul (m + 1)]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply mt _ h", "informal": "Here, we apply the theorem/lemma mt." }, { "formal": "apply mem_powerset.1 ht", "informal": "Here, we apply the theorem/lemma mem_powerset.1." }, { "formal": "rw [\u2190 WithBot.coe_le_coe, coe_sup']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact Finset.sup_le fun b h => WithBot.coe_le_coe.2 <| hs b h", "informal": "Here, we provide the exact term Finset.sup_le that solves our current goal." }, { "formal": "rintro _ \u27e8b, hb, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact \u27e8ha, hb\u27e9", "informal": "Here, we provide the exact term \u27e8ha, that solves our current goal." }, { "formal": "rw [Ne.def, eq_cons_iff a v v', not_and_or]", "informal": "We're rewriting part of the expression using [Ne.def,." }, { "formal": "simp only [hs, le_principal_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 map_zero f]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply h", "informal": "Here, we apply the theorem/lemma h." }, { "formal": "rw [\u2190 sub_add_cancel b a, map_add f]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact lt_add_of_pos_left _ (h _ <| sub_pos.2 hl)", "informal": "Here, we provide the exact term lt_add_of_pos_left that solves our current goal." }, { "formal": "by_cases hx : x = 0", "informal": "We're breaking down the problem into cases based on hx." }, { "formal": "simp [hx]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact exists_dual_vector \ud835\udd5c x hx", "informal": "Here, we provide the exact term exists_dual_vector that solves our current goal." }, { "formal": "simp [div_eq_mul_inv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [symmDiff_eq_sup_sdiff_inf]", "informal": "We're rewriting part of the expression using [symmDiff_eq_sup_sdiff_inf]." }, { "formal": "exact nat_lt_aleph0 n", "informal": "Here, we provide the exact term nat_lt_aleph0 that solves our current goal." }, { "formal": "rw [finrank, Cardinal.toNat_apply_of_aleph0_le h]", "informal": "We're rewriting part of the expression using [finrank,." }, { "formal": "exact n.zero_le", "informal": "Here, we provide the exact term n.zero_le that solves our current goal." }, { "formal": "cases isEmpty_or_nonempty \u03b9", "informal": "We're breaking down the problem into cases based on isEmpty_or_nonempty." }, { "formal": "rw [iSup_of_empty', iSup_of_empty']", "informal": "We're rewriting part of the expression using [iSup_of_empty',." }, { "formal": "exact ciSup_le fun x => le_ciSup_of_le B x (H x)", "informal": "Here, we provide the exact term ciSup_le that solves our current goal." }, { "formal": "intro s hs", "informal": "We introduce new variables s." }, { "formal": "rcases comp_mem_uniformity_sets (mem_nhds_uniformity_iff_right.1 hs) with \u27e8U, U_mem, hU\u27e9", "informal": "We're breaking down the problem into cases based on comp_mem_uniformity_sets." }, { "formal": "rcases adhs U U_mem with \u27e8t, t_mem, ht, y, hxy, hy\u27e9", "informal": "We're breaking down the problem into cases based on adhs." }, { "formal": "apply mem_of_superset t_mem", "informal": "Here, we apply the theorem/lemma mem_of_superset." }, { "formal": "exact fun z hz => hU (prod_mk_mem_compRel hxy (ht <| mk_mem_prod hy hz)) rfl", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "simp only [foldrm, toList_spec, foldMap_hom_free (foldrM.ofFreeMonoid f),\n foldrm.ofFreeMonoid_comp_of, foldrM.get, FreeMonoid.ofList_toList]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 le_pow_iff_clog_le (lt_of_lt_of_le hc hb)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [lt_ord, lt_succ_iff]", "informal": "We're rewriting part of the expression using [lt_ord,." }, { "formal": "rintro _ \u27e8\u27e8L\u27e9, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact\n List.recOn L s.one_mem fun \u27e8x, b\u27e9 tl ih =>\n Bool.recOn b (by simp at ih \u22a2; exact s.mul_mem (s.inv_mem <| H \u27e8x, rfl\u27e9) ih)\n (by simp at ih \u22a2; exact s.mul_mem (H \u27e8x, rfl\u27e9) ih)", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact\n List.recOn L s.one_mem fun \u27e8x, b\u27e9 tl ih =>\n Bool.recOn b (by simp at ih \u22a2; exact s.mul_mem (s.inv_mem <| H \u27e8x, rfl\u27e9) ih)\n (by simp at ih \u22a2; exact s.mul_mem (H \u27e8x, rfl\u27e9) ih)", "informal": "Here, we provide the exact term List.recOn that solves our current goal." }, { "formal": "simp at ih \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact s.mul_mem (s.inv_mem <| H \u27e8x, rfl\u27e9) ih", "informal": "Here, we provide the exact term s.mul_mem that solves our current goal." }, { "formal": "simp at ih \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact s.mul_mem (H \u27e8x, rfl\u27e9) ih", "informal": "Here, we provide the exact term s.mul_mem that solves our current goal." }, { "formal": "rw [aeval_def, aeval_def, hom_eval\u2082, \u2190 IsScalarTower.algebraMap_eq]", "informal": "We're rewriting part of the expression using [aeval_def,." }, { "formal": "intro x y", "informal": "We introduce new variables x." }, { "formal": "rcases p.dichotomy with (rfl | h)", "informal": "We're breaking down the problem into cases based on p.dichotomy." }, { "formal": "simp [edist]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [prod_edist_eq_add pos, ENNReal.toReal_div 1 p]", "informal": "We're rewriting part of the expression using [prod_edist_eq_add." }, { "formal": "simp only [edist, \u2190 one_div, ENNReal.one_toReal]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [edist]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [edist]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [\u2190 two_mul, ENNReal.mul_rpow_of_nonneg _ _ nonneg, \u2190 ENNReal.rpow_mul, cancel,\n ENNReal.rpow_one, \u2190 ENNReal.coe_rpow_of_nonneg _ nonneg, coe_ofNat]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [sdiff_sdiff_right_self, inf_of_le_right h]", "informal": "We're rewriting part of the expression using [sdiff_sdiff_right_self,." }, { "formal": "rw [h.symm, hxy]", "informal": "We're rewriting part of the expression using [h.symm,." }, { "formal": "rw [gcd]", "informal": "We're rewriting part of the expression using [gcd]." }, { "formal": "split_ifs with h <;> [simp only [h, mod_zero, gcd_zero_right]; rfl]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [normSq_apply, normSq_apply, \u2190 _root_.abs_mul_self, _root_.abs_mul, \u2190\n _root_.abs_mul_self y.re, _root_.abs_mul y.re, \u2190 _root_.abs_mul_self x.im,\n _root_.abs_mul x.im, \u2190 _root_.abs_mul_self y.im, _root_.abs_mul y.im]", "informal": "We're rewriting part of the expression using [normSq_apply,." }, { "formal": "rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]", "informal": "We're rewriting part of the expression using [isOpen_coinduced,." }, { "formal": "exact isOpen_iUnion fun \u03b3 => isOpenMap_smul \u03b3 U hU", "informal": "Here, we provide the exact term isOpen_iUnion that solves our current goal." }, { "formal": "apply le_antisymm", "informal": "Here, we apply the theorem/lemma le_antisymm." }, { "formal": "apply iSup_le _", "informal": "Here, we apply the theorem/lemma iSup_le." }, { "formal": "intro i y hy", "informal": "We introduce new variables i." }, { "formal": "exact \u27e8DFinsupp.single i \u27e8y, hy\u27e9, DFinsupp.sumAddHom_single _ _ _\u27e9", "informal": "Here, we provide the exact term \u27e8DFinsupp.single that solves our current goal." }, { "formal": "rintro x \u27e8v, rfl\u27e9", "informal": "We introduce new variables x." }, { "formal": "exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i \u2264 _) (v i).prop", "informal": "Here, we provide the exact term dfinsupp_sumAddHom_mem that solves our current goal." }, { "formal": "exact \u27e8bddBelow_Icc.mono hr, bddAbove_Icc.mono hr\u27e9", "informal": "Here, we provide the exact term \u27e8bddBelow_Icc.mono that solves our current goal." }, { "formal": "intro a b h", "informal": "We introduce new variables a." }, { "formal": "simp only [mulShift_mul, mulShift_zero, add_right_neg] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h, isNontrivial_iff_ne_trivial, \u2190 sub_eq_add_neg, sub_ne_zero] at h\u2082", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "exact not_not.mp fun h => h\u2082 h rfl", "informal": "Here, we provide the exact term not_not.mp that solves our current goal." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "have : s = e.symm '' (e '' s) := by rw [\u2190 image_comp]; simp", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [this]", "informal": "We're rewriting part of the expression using [this]." }, { "formal": "exact (e.symm : P\u2082 \u2192\u1d43[k] P\u2081).span_eq_top_of_surjective e.symm.surjective h", "informal": "Here, we provide the exact term (e.symm that solves our current goal." }, { "formal": "rw [\u2190 image_comp]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [norm_indicator_eq_indicator_norm, norm_indicator_eq_indicator_norm]", "informal": "We're rewriting part of the expression using [norm_indicator_eq_indicator_norm,." }, { "formal": "rw [Set.mem_setOf_eq] at hx", "informal": "We're rewriting part of the expression using [Set.mem_setOf_eq]." }, { "formal": "exact (max_le_iff.1 hx).1", "informal": "Here, we provide the exact term (max_le_iff.1 that solves our current goal." }, { "formal": "exact opow_pos _ omega_pos", "informal": "Here, we provide the exact term opow_pos that solves our current goal." }, { "formal": "rw [repr]", "informal": "We're rewriting part of the expression using [repr]." }, { "formal": "apply ((add_lt_add_iff_left _).2 IH).trans_le", "informal": "Here, we apply the theorem/lemma ((add_lt_add_iff_left." }, { "formal": "rw [\u2190 mul_succ]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply (mul_le_mul_left' (succ_le_of_lt (nat_lt_omega _)) _).trans", "informal": "Here, we apply the theorem/lemma (mul_le_mul_left'." }, { "formal": "rw [\u2190 opow_succ]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact opow_le_opow_right omega_pos (succ_le_of_lt h\u2083)", "informal": "Here, we provide the exact term opow_le_opow_right that solves our current goal." }, { "formal": "rw [vars_monomial hr, Finsupp.support_single_ne_zero _ he]", "informal": "We're rewriting part of the expression using [vars_monomial." }, { "formal": "simp only [jacobiSym, factors_one, List.prod_nil, List.pmap]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "let f : HNNExtension G A B \u03c6 \u2192* S :=\n lift (HNNExtension.of.codRestrict S of)\n \u27e8HNNExtension.t, t\u27e9 (by intro a; ext; simp [equiv_eq_conj, mul_assoc])", "informal": "We introduce new variables f." }, { "formal": "let f : HNNExtension G A B \u03c6 \u2192* S :=\n lift (HNNExtension.of.codRestrict S of)\n \u27e8HNNExtension.t, t\u27e9 (by intro a; ext; simp [equiv_eq_conj, mul_assoc])", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 hf]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (f x).2", "informal": "Here, we provide the exact term (f that solves our current goal." }, { "formal": "intro a", "informal": "We introduce new variables a." }, { "formal": "simp [equiv_eq_conj, mul_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Int.cast_neg, sub_eq_add_neg]", "informal": "We're rewriting part of the expression using [Int.cast_neg,." }, { "formal": "rw [Finset.convexHull_eq, Set.mem_setOf_eq]", "informal": "We're rewriting part of the expression using [Finset.convexHull_eq,." }, { "formal": "rw [\u2190 NNReal.coe_one, NNReal.coe_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [finprod_eq_prod _ hf]", "informal": "We're rewriting part of the expression using [finprod_eq_prod." }, { "formal": "have h : \u2200 x : \u03b1, f x \u2260 1 \u2192 (x \u2260 a \u2194 x \u2208 hf.toFinset \\ {a}) := by\n intro x hx\n rw [Finset.mem_sdiff, Finset.mem_singleton, Finite.mem_toFinset, mem_mulSupport]\n exact \u27e8fun h => And.intro hx h, fun h => h.2\u27e9", "informal": "We're rewriting part of the expression using h." }, { "formal": "have h : \u2200 x : \u03b1, f x \u2260 1 \u2192 (x \u2260 a \u2194 x \u2208 hf.toFinset \\ {a}) := by\n intro x hx\n rw [Finset.mem_sdiff, Finset.mem_singleton, Finite.mem_toFinset, mem_mulSupport]\n exact \u27e8fun h => And.intro hx h, fun h => h.2\u27e9", "informal": "We introduce new variables h." }, { "formal": "have h : \u2200 x : \u03b1, f x \u2260 1 \u2192 (x \u2260 a \u2194 x \u2208 hf.toFinset \\ {a}) := by\n intro x hx\n rw [Finset.mem_sdiff, Finset.mem_singleton, Finite.mem_toFinset, mem_mulSupport]\n exact \u27e8fun h => And.intro hx h, fun h => h.2\u27e9", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [finprod_cond_eq_prod_of_cond_iff f (fun hx => h _ hx), Finset.sdiff_singleton_eq_erase]", "informal": "We're rewriting part of the expression using [finprod_cond_eq_prod_of_cond_iff." }, { "formal": "by_cases ha : a \u2208 mulSupport f", "informal": "We're breaking down the problem into cases based on ha." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "rw [Finset.mem_sdiff, Finset.mem_singleton, Finite.mem_toFinset, mem_mulSupport]", "informal": "We're rewriting part of the expression using [Finset.mem_sdiff,." }, { "formal": "exact \u27e8fun h => And.intro hx h, fun h => h.2\u27e9", "informal": "We introduce new variables \u27e8fun." }, { "formal": "exact \u27e8fun h => And.intro hx h, fun h => h.2\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "apply Finset.mul_prod_erase _ _ ((Finite.mem_toFinset _).mpr ha)", "informal": "Here, we apply the theorem/lemma Finset.mul_prod_erase." }, { "formal": "rw [mem_mulSupport, not_not] at ha", "informal": "We're rewriting part of the expression using [mem_mulSupport,." }, { "formal": "rw [ha, one_mul]", "informal": "We're rewriting part of the expression using [ha,." }, { "formal": "apply Finset.prod_erase _ ha", "informal": "Here, we apply the theorem/lemma Finset.prod_erase." }, { "formal": "rw [mem_Ioi, add_right_comm, add_lt_add_iff_right] at h", "informal": "We're rewriting part of the expression using [mem_Ioi,." }, { "formal": "exact \u27e8a + c, h, by rw [add_right_comm]\u27e9", "informal": "We're rewriting part of the expression using \u27e8a." }, { "formal": "exact \u27e8a + c, h, by rw [add_right_comm]\u27e9", "informal": "Here, we provide the exact term \u27e8a that solves our current goal." }, { "formal": "rw [add_right_comm]", "informal": "We're rewriting part of the expression using [add_right_comm]." }, { "formal": "dsimp [tensorLeftHomEquiv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [id_tensor_comp, Category.assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [single_eq_set_indicator]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [coeff_zero_eq_constantCoeff]", "informal": "We're rewriting part of the expression using [coeff_zero_eq_constantCoeff]." }, { "formal": "simp_rw [mongePoint_eq_smul_vsub_vadd_circumcenter, centroid_eq_of_range_eq h,\n circumcenter_eq_of_range_eq h]", "informal": "We're rewriting part of the expression using [mongePoint_eq_smul_vsub_vadd_circumcenter,." }, { "formal": "rw [T, T, \u2190 single_eq_C, single_mul_single, single_mul_single, single_mul_single]", "informal": "We're rewriting part of the expression using [T,." }, { "formal": "simp [add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "exact \u27e81, subset_closure \u27e8_, hx, by rw [pow_one]\u27e9\u27e9", "informal": "We're rewriting part of the expression using \u27e81,." }, { "formal": "exact \u27e81, subset_closure \u27e8_, hx, by rw [pow_one]\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e81, that solves our current goal." }, { "formal": "rw [pow_one]", "informal": "We're rewriting part of the expression using [pow_one]." }, { "formal": "exact \u27e80, by simpa using one_mem _\u27e9", "informal": "Here, we provide the exact term \u27e80, that solves our current goal." }, { "formal": "rintro x y \u27e8nx, hx\u27e9 \u27e8ny, hy\u27e9", "informal": "We introduce new variables x." }, { "formal": "rw [pow_add, mul_smul, \u2190 smul_mul_assoc, mul_comm, \u2190 smul_mul_assoc]", "informal": "We're rewriting part of the expression using [pow_add,." }, { "formal": "exact mul_mem hy hx", "informal": "Here, we provide the exact term mul_mem that solves our current goal." }, { "formal": "simp [union_def]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases l <;> rfl", "informal": "We're breaking down the problem into cases based on l." }, { "formal": "rintro _ \u27e8x, rfl\u27e9 i -", "informal": "We introduce new variables _." }, { "formal": "exact \u27e8x i, rfl\u27e9", "informal": "Here, we provide the exact term \u27e8x that solves our current goal." }, { "formal": "exact \u27e8fun i => y i trivial, funext fun i => hy i trivial\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "suffices det A' = \u2211 j : Fin n'.succ, A' (e i) j * adjugate A' j (e i) by\n simp_rw [det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, \u2190 e.sum_comp,\n Equiv.symm_apply_apply] at this\n exact this", "informal": "We're rewriting part of the expression using det." }, { "formal": "suffices det A' = \u2211 j : Fin n'.succ, A' (e i) j * adjugate A' j (e i) by\n simp_rw [det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, \u2190 e.sum_comp,\n Equiv.symm_apply_apply] at this\n exact this", "informal": "Here, we provide the exact term det that solves our current goal." }, { "formal": "rw [det_succ_row A' (e i)]", "informal": "We're rewriting part of the expression using [det_succ_row." }, { "formal": "simp_rw [mul_assoc, mul_left_comm _ (A' _ _), \u2190 adjugate_fin_succ_eq_det_submatrix]", "informal": "We're rewriting part of the expression using [mul_assoc,." }, { "formal": "simp_rw [det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, \u2190 e.sum_comp,\n Equiv.symm_apply_apply] at this", "informal": "We're rewriting part of the expression using [det_reindex_self,." }, { "formal": "exact this", "informal": "Here, we provide the exact term this that solves our current goal." }, { "formal": "simp only [dist_nndist, NNReal.coe_le_coe, nndist_le_pi_nndist f g b]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Nat.card_congr (QuotientGroup.quotientKerEquivOfSurjective f hf).toEquiv]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact Dvd.intro_left (Nat.card f.ker) f.ker.card_mul_index", "informal": "Here, we provide the exact term Dvd.intro_left that solves our current goal." }, { "formal": "rw [\u2190 e.image_symm_eq_preimage, e.symm.uniqueDiffOn_image_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [Algebra.smul_def, Algebra.smul_def, RingHom.map_mul, map_eq]", "informal": "We're rewriting part of the expression using [Algebra.smul_def,." }, { "formal": "rw [\u2190 card_Icc, Fintype.card_ofFinset]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [coeff_rescale, coeff_mk, coeff_mk]", "informal": "We're rewriting part of the expression using [coeff_rescale,." }, { "formal": "simp only [coe_GLPos_neg, sl_moeb, coe_int_neg, neg_smul, coe']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [col]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "dsimp [id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [CategoryStruct.comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : CompleteSpace \u03b1 := by\n rw [completeSpace_iff_isComplete_range hf.toEmbedding.to_isometry.uniformInducing]\n exact hf.closed_range.isComplete", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : CompleteSpace \u03b1 := by\n rw [completeSpace_iff_isComplete_range hf.toEmbedding.to_isometry.uniformInducing]\n exact hf.closed_range.isComplete", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "rw [completeSpace_iff_isComplete_range hf.toEmbedding.to_isometry.uniformInducing]", "informal": "We're rewriting part of the expression using [completeSpace_iff_isComplete_range." }, { "formal": "exact hf.closed_range.isComplete", "informal": "Here, we provide the exact term hf.closed_range.isComplete that solves our current goal." }, { "formal": "apply funext", "informal": "Here, we apply the theorem/lemma funext." }, { "formal": "rw [(Fin.rightInverse_cast h.symm).surjective.forall]", "informal": "We're rewriting part of the expression using [(Fin.rightInverse_cast." }, { "formal": "intro i", "informal": "We introduce new variables i." }, { "formal": "simp [modNat, Nat.mod_eq_of_lt i.is_lt]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [nil_prefix, filterMap_nil]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [cons_prefix_iff] at h", "informal": "We're rewriting part of the expression using [cons_prefix_iff]." }, { "formal": "rw [\u2190 @singleton_append _ hd\u2081 _, \u2190 @singleton_append _ hd\u2082 _, filterMap_append,\n filterMap_append, h.left, prefix_append_right_inj]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact hl h.right", "informal": "Here, we provide the exact term hl that solves our current goal." }, { "formal": "rw [Complex.norm_eq_abs, Complex.abs_exp]", "informal": "We're rewriting part of the expression using [Complex.norm_eq_abs,." }, { "formal": "have : (\u2191\u03c0 * I * (n : \u2102) ^ 2 * z).re = -\u03c0 * z.im * (n : \u211d) ^ 2 := by\n rw [(by push_cast; ring : \u2191\u03c0 * I * (n : \u2102) ^ 2 * z = \u2191(\u03c0 * (n : \u211d) ^ 2) * (z * I)),\n ofReal_mul_re, mul_I_re]\n ring", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [this, exp_mul, \u2190 Int.cast_pow, rpow_int_cast, hm, zpow_ofNat]", "informal": "We're rewriting part of the expression using [this,." }, { "formal": "rw [(by push_cast; ring : \u2191\u03c0 * I * (n : \u2102) ^ 2 * z = \u2191(\u03c0 * (n : \u211d) ^ 2) * (z * I)),\n ofReal_mul_re, mul_I_re]", "informal": "We're rewriting part of the expression using [(by." }, { "formal": "have : n ^ 2 = \u2191(n.natAbs ^ 2) := by rw [Nat.cast_pow, Int.natAbs_sq]", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [this, zpow_ofNat]", "informal": "We're rewriting part of the expression using [this,." }, { "formal": "exact pow_le_pow_of_le_one (exp_pos _).le h.le ((sq n.natAbs).symm \u25b8 n.natAbs.le_mul_self)", "informal": "Here, we provide the exact term pow_le_pow_of_le_one that solves our current goal." }, { "formal": "rw [Nat.cast_pow, Int.natAbs_sq]", "informal": "We're rewriting part of the expression using [Nat.cast_pow,." }, { "formal": "intro n", "informal": "We introduce new variables n." }, { "formal": "rw [\u2190 ae_restrict_iff' (measurable_spanningSets _ _)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply ae_lt_top (measurable_rnDeriv _ _)", "informal": "Here, we apply the theorem/lemma ae_lt_top." }, { "formal": "exact (measure_spanningSets_lt_top _ _).ne", "informal": "Here, we provide the exact term (measure_spanningSets_lt_top that solves our current goal." }, { "formal": "simp only [e.repr_unitsSMul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [\u2190 Finset.prod_inv_distrib]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [List.bind]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [dist_comm, dist_conj_self]", "informal": "We're rewriting part of the expression using [dist_comm,." }, { "formal": "dsimp [moveRight]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Finset.card_erase_of_mem (fst_pred_mem_erase_of_mem_right h)]", "informal": "We're rewriting part of the expression using [Finset.card_erase_of_mem." }, { "formal": "rw [Finset.card_erase_of_mem (Finset.mem_of_mem_inter_left h)]", "informal": "We're rewriting part of the expression using [Finset.card_erase_of_mem." }, { "formal": "exact tsub_add_cancel_of_le (card_of_mem_right h)", "informal": "Here, we provide the exact term tsub_add_cancel_of_le that solves our current goal." }, { "formal": "simp [pi_subset_pi_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases f0 : f = 0", "informal": "We're breaking down the problem into cases based on f0." }, { "formal": "rw [\u2190 fc, f0, eraseLead_zero, support_zero, card_empty]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [eraseLead_support, card_erase_of_mem (natDegree_mem_support_of_nonzero f0), fc]", "informal": "We're rewriting part of the expression using [eraseLead_support,." }, { "formal": "rw [\u2190 affineSegment_const_vadd_image, (AddAction.injective v).mem_set_image]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "by_cases xy:x \u2264 y <;> by_cases yx:y \u2264 x <;> simp [cmpLE, *, Ordering.swap]", "informal": "We're breaking down the problem into cases based on xy:x." }, { "formal": "by_cases xy:x \u2264 y <;> by_cases yx:y \u2264 x <;> simp [cmpLE, *, Ordering.swap]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases not_or_of_not xy yx (total_of _ _ _)", "informal": "We're breaking down the problem into cases based on not_or_of_not." }, { "formal": "rw [\u2190 get?_eq_get, eq, get?_append_right (h \u25b8 Nat.le_refl _), h, Nat.sub_self]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 get?_eq_get, eq, get?_append_right (h \u25b8 Nat.le_refl _), h, Nat.sub_self]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "constructor <;> intro h", "informal": "We introduce new variables <;>." }, { "formal": "intro u v hu hv hs huv", "informal": "We introduce new variables u." }, { "formal": "rw [isPreconnected_closed_iff] at h", "informal": "We're rewriting part of the expression using [isPreconnected_closed_iff]." }, { "formal": "rw [\u2190 nonempty_iff_ne_empty]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [not_subset] at huv", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases huv with \u27e8\u27e8x, hxs, hxu\u27e9, \u27e8y, hys, hyv\u27e9\u27e9", "informal": "We're breaking down the problem into cases based on huv." }, { "formal": "exact h \u27e8y, hys, hyu\u27e9 \u27e8x, hxs, hxv\u27e9", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [isPreconnected_closed_iff]", "informal": "We're rewriting part of the expression using [isPreconnected_closed_iff]." }, { "formal": "intro u v hu hv hs hsu hsv", "informal": "We introduce new variables u." }, { "formal": "rw [nonempty_iff_ne_empty]", "informal": "We're rewriting part of the expression using [nonempty_iff_ne_empty]." }, { "formal": "intro H", "informal": "We introduce new variables H." }, { "formal": "apply Nonempty.ne_empty", "informal": "Here, we apply the theorem/lemma Nonempty.ne_empty." }, { "formal": "rcases hsv with \u27e8x, hxs, hxv\u27e9", "informal": "We're breaking down the problem into cases based on hsv." }, { "formal": "exact \u27e8x, hxs, \u27e8h hxs, hxv\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8x, that solves our current goal." }, { "formal": "rcases hsu with \u27e8x, hxs, hxu\u27e9", "informal": "We're breaking down the problem into cases based on hsu." }, { "formal": "exact \u27e8x, hxs, \u27e8hxu, h hxs\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8x, that solves our current goal." }, { "formal": "simp [Xor', and_comm, or_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "rw [tsub_zero] at h", "informal": "We're rewriting part of the expression using [tsub_zero]." }, { "formal": "exact h.false", "informal": "Here, we provide the exact term h.false that solves our current goal." }, { "formal": "rw [cmp_eq_gt] at h\u2081 h\u2082 \u22a2", "informal": "We're rewriting part of the expression using [cmp_eq_gt]." }, { "formal": "exact lt_trans h\u2082 h\u2081", "informal": "Here, we provide the exact term lt_trans that solves our current goal." }, { "formal": "simp [Basis.finTwoProd, LinearEquiv.finTwoArrow]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [measure_singleton]", "informal": "We're rewriting part of the expression using [measure_singleton]." }, { "formal": "exact ENNReal.zero_ne_top", "informal": "Here, we provide the exact term ENNReal.zero_ne_top that solves our current goal." }, { "formal": "cases isEmpty_or_nonempty \u03b9", "informal": "We're breaking down the problem into cases based on isEmpty_or_nonempty." }, { "formal": "simp_rw [iInter_of_empty, image_univ_of_surjective hf.surjective]", "informal": "We're rewriting part of the expression using [iInter_of_empty,." }, { "formal": "exact (hf.injective.injOn _).image_iInter_eq", "informal": "Here, we provide the exact term (hf.injective.injOn that solves our current goal." }, { "formal": "classical\n have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)\n simp_rw [this, \u2190 Fintype.card_sigma,\n Fintype.card_congr (selfEquivSigmaOrbitsQuotientStabilizer' \u03b1 \u03b2 h\u03c6)]", "informal": "We're rewriting part of the expression using have." }, { "formal": "classical\n have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)\n simp_rw [this, \u2190 Fintype.card_sigma,\n Fintype.card_congr (selfEquivSigmaOrbitsQuotientStabilizer' \u03b1 \u03b2 h\u03c6)]", "informal": "We introduce new variables have." }, { "formal": "classical\n have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)\n simp_rw [this, \u2190 Fintype.card_sigma,\n Fintype.card_congr (selfEquivSigmaOrbitsQuotientStabilizer' \u03b1 \u03b2 h\u03c6)]", "informal": "Here, we provide the exact term have that solves our current goal." }, { "formal": "have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)", "informal": "We introduce new variables :." }, { "formal": "have : \u2200 \u03c9 : \u03a9, Fintype.card \u03b1 / Fintype.card (stabilizer \u03b1 (\u03c6 \u03c9)) =\n Fintype.card (\u03b1 \u29f8 stabilizer \u03b1 (\u03c6 \u03c9)) := by\n intro \u03c9\n rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]\n exact Fintype.card_pos_iff.mpr (by infer_instance)", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "simp_rw [this, \u2190 Fintype.card_sigma,\n Fintype.card_congr (selfEquivSigmaOrbitsQuotientStabilizer' \u03b1 \u03b2 h\u03c6)]", "informal": "We're rewriting part of the expression using [this,." }, { "formal": "intro \u03c9", "informal": "We introduce new variables \u03c9." }, { "formal": "rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup \u03b1 _ (stabilizer \u03b1 <| \u03c6 \u03c9)),\n Fintype.card_prod, Nat.mul_div_cancel]", "informal": "We're rewriting part of the expression using [Fintype.card_congr." }, { "formal": "exact Fintype.card_pos_iff.mpr (by infer_instance)", "informal": "Here, we provide the exact term Fintype.card_pos_iff.mpr that solves our current goal." }, { "formal": "rw [nhds_zero]", "informal": "We're rewriting part of the expression using [nhds_zero]." }, { "formal": "exact directedOn_iff_directed.2 (directed_of_inf fun a b hab => Iio_subset_Iio hab)", "informal": "Here, we provide the exact term directedOn_iff_directed.2 that solves our current goal." }, { "formal": "rcases exists_ne (0 : M) with \u27e8y, hy\u27e9", "informal": "We're breaking down the problem into cases based on exists_ne." }, { "formal": "rw [mem_bot, single_eq_zero] at this", "informal": "We're rewriting part of the expression using [mem_bot,." }, { "formal": "exact hy this", "informal": "Here, we provide the exact term hy that solves our current goal." }, { "formal": "rw [EReal.mul_comm]", "informal": "We're rewriting part of the expression using [EReal.mul_comm]." }, { "formal": "exact mul_bot_of_neg h", "informal": "Here, we provide the exact term mul_bot_of_neg that solves our current goal." }, { "formal": "intro s hs h\u03bcs", "informal": "We introduce new variables s." }, { "formal": "rw [T.set_integral_compLp _ (hm s hs),\n T.integral_comp_comm\n (integrableOn_Lp_of_measure_ne_top _ fact_one_le_two_ennreal.elim h\u03bcs.ne),\n \u2190 lpMeas_coe, \u2190 lpMeas_coe, integral_condexpL2_eq hm f hs h\u03bcs.ne,\n integral_condexpL2_eq hm (T.compLp f) hs h\u03bcs.ne, T.set_integral_compLp _ (hm s hs),\n T.integral_comp_comm\n (integrableOn_Lp_of_measure_ne_top f fact_one_le_two_ennreal.elim h\u03bcs.ne)]", "informal": "We're rewriting part of the expression using [T.set_integral_compLp." }, { "formal": "exact lpMeas.aeStronglyMeasurable' _", "informal": "Here, we provide the exact term lpMeas.aeStronglyMeasurable' that solves our current goal." }, { "formal": "rw [\u2190 EventuallyEq] at h_coe", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (lpMeas.aeStronglyMeasurable' (condexpL2 E' \ud835\udd5c hm f)).continuous_comp T.continuous", "informal": "Here, we provide the exact term (lpMeas.aeStronglyMeasurable' that solves our current goal." }, { "formal": "rw [\u2190 cancel_epi e.inv]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply hY.eq_of_src", "informal": "Here, we apply the theorem/lemma hY.eq_of_src." }, { "formal": "rw [\u2190 cancel_mono e.hom]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply hY.eq_of_tgt", "informal": "Here, we apply the theorem/lemma hY.eq_of_tgt." }, { "formal": "rw [det_transpose]", "informal": "We're rewriting part of the expression using [det_transpose]." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [\u2190 inv_inv_of_invertible A]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact IsHermitian.inv h", "informal": "Here, we provide the exact term IsHermitian.inv that solves our current goal." }, { "formal": "rw [\u2190 star_comm_self']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact a.star_mul_eq_coe", "informal": "Here, we provide the exact term a.star_mul_eq_coe that solves our current goal." }, { "formal": "exact image2_union_right", "informal": "Here, we provide the exact term image2_union_right that solves our current goal." }, { "formal": "simp [get_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [quotient_norm_eq_zero_iff]", "informal": "We're rewriting part of the expression using [quotient_norm_eq_zero_iff]." }, { "formal": "exact subset_closure S.zero_mem", "informal": "Here, we provide the exact term subset_closure that solves our current goal." }, { "formal": "rw [bernoulli'_def]", "informal": "We're rewriting part of the expression using [bernoulli'_def]." }, { "formal": "rw [corec_eq]", "informal": "We're rewriting part of the expression using [corec_eq]." }, { "formal": "rw [Fintype.prod_equiv m.coeEquiv (fun x \u21a6 f x x.2) fun x \u21a6 f x.1.1 x.1.2]", "informal": "We're rewriting part of the expression using [Fintype.prod_equiv." }, { "formal": "rw [\u2190 m.toEnumFinset.prod_coe_sort fun x \u21a6 f x.1 x.2]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro x", "informal": "We introduce new variables x." }, { "formal": "by_cases Ai_empty : \u2203 i, A i = \u2205", "informal": "We're breaking down the problem into cases based on Ai_empty." }, { "formal": "by_cases Ai_singleton : \u2200 i, (A i).card \u2264 1", "informal": "We're breaking down the problem into cases based on Ai_singleton." }, { "formal": "have Brec : (f fun i => \u2211 j in B i, g i j) = \u2211 r in piFinset B, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (B i)) < \u2211 i, Finset.card (A i) := by\n refine'\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (B_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, _\u27e9\n have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]\n simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]\n exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))\n rw [h] at this\n exact IH _ this B rfl", "informal": "We're rewriting part of the expression using Brec." }, { "formal": "have Brec : (f fun i => \u2211 j in B i, g i j) = \u2211 r in piFinset B, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (B i)) < \u2211 i, Finset.card (A i) := by\n refine'\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (B_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, _\u27e9\n have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]\n simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]\n exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))\n rw [h] at this\n exact IH _ this B rfl", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have Brec : (f fun i => \u2211 j in B i, g i j) = \u2211 r in piFinset B, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (B i)) < \u2211 i, Finset.card (A i) := by\n refine'\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (B_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, _\u27e9\n have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]\n simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]\n exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))\n rw [h] at this\n exact IH _ this B rfl", "informal": "Here, we provide the exact term Brec that solves our current goal." }, { "formal": "have Crec : (f fun i => \u2211 j in C i, g i j) = \u2211 r in piFinset C, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (C i)) < \u2211 i, Finset.card (A i) :=\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (C_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, by simp [hi\u2080]\u27e9\n rw [h] at this\n exact IH _ this C rfl", "informal": "We're rewriting part of the expression using Crec." }, { "formal": "have Crec : (f fun i => \u2211 j in C i, g i j) = \u2211 r in piFinset C, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (C i)) < \u2211 i, Finset.card (A i) :=\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (C_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, by simp [hi\u2080]\u27e9\n rw [h] at this\n exact IH _ this C rfl", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have Crec : (f fun i => \u2211 j in C i, g i j) = \u2211 r in piFinset C, f fun i => g i (r i) := by\n have : (\u2211 i, Finset.card (C i)) < \u2211 i, Finset.card (A i) :=\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (C_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, by simp [hi\u2080]\u27e9\n rw [h] at this\n exact IH _ this C rfl", "informal": "Here, we provide the exact term Crec that solves our current goal." }, { "formal": "rw [A_eq_BC]", "informal": "We're rewriting part of the expression using [A_eq_BC]." }, { "formal": "simp only [MultilinearMap.map_add, Beq, Ceq, Brec, Crec, pi_BC]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Finset.sum_union D]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rcases Ai_empty with \u27e8i, hi\u27e9", "informal": "We're breaking down the problem into cases based on Ai_empty." }, { "formal": "have : \u2211 j in A i, g i j = 0 := by rw [hi, Finset.sum_empty]", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [f.map_coord_zero i this]", "informal": "We're rewriting part of the expression using [f.map_coord_zero." }, { "formal": "have : piFinset A = \u2205 := by\n refine Finset.eq_empty_of_forall_not_mem fun r hr => ?_\n have : r i \u2208 A i := mem_piFinset.mp hr i\n simp [hi] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [this, Finset.sum_empty]", "informal": "We're rewriting part of the expression using [this,." }, { "formal": "rw [hi, Finset.sum_empty]", "informal": "We're rewriting part of the expression using [hi,." }, { "formal": "simp [hi] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have Ai_card : \u2200 i, (A i).card = 1 := by\n intro i\n have pos : Finset.card (A i) \u2260 0 := by simp [Finset.card_eq_zero, Ai_empty i]\n have : Finset.card (A i) \u2264 1 := Ai_singleton i\n exact le_antisymm this (Nat.succ_le_of_lt (_root_.pos_iff_ne_zero.mpr pos))", "informal": "We introduce new variables Ai_card." }, { "formal": "have Ai_card : \u2200 i, (A i).card = 1 := by\n intro i\n have pos : Finset.card (A i) \u2260 0 := by simp [Finset.card_eq_zero, Ai_empty i]\n have : Finset.card (A i) \u2264 1 := Ai_singleton i\n exact le_antisymm this (Nat.succ_le_of_lt (_root_.pos_iff_ne_zero.mpr pos))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have Ai_card : \u2200 i, (A i).card = 1 := by\n intro i\n have pos : Finset.card (A i) \u2260 0 := by simp [Finset.card_eq_zero, Ai_empty i]\n have : Finset.card (A i) \u2264 1 := Ai_singleton i\n exact le_antisymm this (Nat.succ_le_of_lt (_root_.pos_iff_ne_zero.mpr pos))", "informal": "Here, we provide the exact term Ai_card that solves our current goal." }, { "formal": "have :\n \u2200 r : \u2200 i, \u03b1 i, r \u2208 piFinset A \u2192 (f fun i => g i (r i)) = f fun i => \u2211 j in A i, g i j := by\n intro r hr\n congr with i\n have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i\n simp only [Finset.sum_congr rfl this, Finset.mem_univ, Finset.sum_const, Ai_card i, one_nsmul]", "informal": "Here, we apply the theorem/lemma :." }, { "formal": "have :\n \u2200 r : \u2200 i, \u03b1 i, r \u2208 piFinset A \u2192 (f fun i => g i (r i)) = f fun i => \u2211 j in A i, g i j := by\n intro r hr\n congr with i\n have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i\n simp only [Finset.sum_congr rfl this, Finset.mem_univ, Finset.sum_const, Ai_card i, one_nsmul]", "informal": "We introduce new variables :." }, { "formal": "have :\n \u2200 r : \u2200 i, \u03b1 i, r \u2208 piFinset A \u2192 (f fun i => g i (r i)) = f fun i => \u2211 j in A i, g i j := by\n intro r hr\n congr with i\n have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i\n simp only [Finset.sum_congr rfl this, Finset.mem_univ, Finset.sum_const, Ai_card i, one_nsmul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have :\n \u2200 r : \u2200 i, \u03b1 i, r \u2208 piFinset A \u2192 (f fun i => g i (r i)) = f fun i => \u2211 j in A i, g i j := by\n intro r hr\n congr with i\n have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i\n simp only [Finset.sum_congr rfl this, Finset.mem_univ, Finset.sum_const, Ai_card i, one_nsmul]", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "simp only [Finset.sum_congr rfl this, Ai_card, card_piFinset, prod_const_one, one_nsmul,\n Finset.sum_const]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro i", "informal": "We introduce new variables i." }, { "formal": "have pos : Finset.card (A i) \u2260 0 := by simp [Finset.card_eq_zero, Ai_empty i]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact le_antisymm this (Nat.succ_le_of_lt (_root_.pos_iff_ne_zero.mpr pos))", "informal": "Here, we provide the exact term le_antisymm that solves our current goal." }, { "formal": "simp [Finset.card_eq_zero, Ai_empty i]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro r hr", "informal": "We introduce new variables r." }, { "formal": "have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i", "informal": "Here, we apply the theorem/lemma :." }, { "formal": "have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i", "informal": "We introduce new variables :." }, { "formal": "have : \u2200 j \u2208 A i, g i j = g i (r i) := by\n intro j hj\n congr\n apply Finset.card_le_one_iff.1 (Ai_singleton i) hj\n exact mem_piFinset.mp hr i", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "simp only [Finset.sum_congr rfl this, Finset.mem_univ, Finset.sum_const, Ai_card i, one_nsmul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro j hj", "informal": "We introduce new variables j." }, { "formal": "apply Finset.card_le_one_iff.1 (Ai_singleton i) hj", "informal": "Here, we apply the theorem/lemma Finset.card_le_one_iff.1." }, { "formal": "exact mem_piFinset.mp hr i", "informal": "Here, we provide the exact term mem_piFinset.mp that solves our current goal." }, { "formal": "intro i", "informal": "We introduce new variables i." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "rw [hi]", "informal": "We're rewriting part of the expression using [hi]." }, { "formal": "simp only [sdiff_subset, update_same]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff, Finset.Subset.refl]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff, Finset.Subset.refl]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro i", "informal": "We introduce new variables i." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "rw [hi]", "informal": "We're rewriting part of the expression using [hi]." }, { "formal": "simp only [hj\u2082, Finset.singleton_subset_iff, update_same]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff, Finset.Subset.refl]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff, Finset.Subset.refl]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "rw [hi, update_same]", "informal": "We're rewriting part of the expression using [hi,." }, { "formal": "have : A i\u2080 = B i\u2080 \u222a C i\u2080 := by\n simp only [Function.update_same, Finset.sdiff_union_self_eq_union]\n symm\n simp only [hj\u2082, Finset.singleton_subset_iff, Finset.union_eq_left]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [this]", "informal": "We're rewriting part of the expression using [this]." }, { "formal": "rw [this]", "informal": "We're rewriting part of the expression using [this]." }, { "formal": "simp only [mem_sdiff, eq_self_iff_true, not_true, not_false_iff, Finset.mem_singleton,\n update_same, and_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Function.update_same, Finset.sdiff_union_self_eq_union]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hj\u2082, Finset.singleton_subset_iff, Finset.union_eq_left]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hi]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "rw [hi]", "informal": "We're rewriting part of the expression using [hi]." }, { "formal": "simp only [update_same]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "rw [hi]", "informal": "We're rewriting part of the expression using [hi]." }, { "formal": "simp only [update_same]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hi, update_noteq, Ne.def, not_false_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : (\u2211 i, Finset.card (B i)) < \u2211 i, Finset.card (A i) := by\n refine'\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (B_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, _\u27e9\n have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]\n simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]\n exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : (\u2211 i, Finset.card (B i)) < \u2211 i, Finset.card (A i) := by\n refine'\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (B_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, _\u27e9\n have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]\n simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]\n exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "rw [h] at this", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact IH _ this B rfl", "informal": "Here, we provide the exact term IH that solves our current goal." }, { "formal": "have : {j\u2082} \u2286 A i\u2080 := by simp [hj\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Finset.card_sdiff this, Function.update_same, Finset.card_singleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Nat.pred_lt (ne_of_gt (lt_trans Nat.zero_lt_one hi\u2080))", "informal": "Here, we provide the exact term Nat.pred_lt that solves our current goal." }, { "formal": "simp [hj\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : (\u2211 i, Finset.card (C i)) < \u2211 i, Finset.card (A i) :=\n Finset.sum_lt_sum (fun i _ => Finset.card_le_of_subset (C_subset_A i))\n \u27e8i\u2080, Finset.mem_univ _, by simp [hi\u2080]\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h] at this", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact IH _ this C rfl", "informal": "Here, we provide the exact term IH that solves our current goal." }, { "formal": "simp [hi\u2080]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Finset.Subset.antisymm", "informal": "Here, we apply the theorem/lemma Finset.Subset.antisymm." }, { "formal": "intro r hr", "informal": "We introduce new variables r." }, { "formal": "by_cases hri\u2080 : r i\u2080 = j\u2082", "informal": "We're breaking down the problem into cases based on hri\u2080." }, { "formal": "apply Finset.mem_union_right", "informal": "Here, we apply the theorem/lemma Finset.mem_union_right." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "have : r i\u2080 \u2208 C i\u2080 := by simp [hri\u2080]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hri\u2080]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hi, mem_piFinset.1 hr i]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Finset.mem_union_left", "informal": "Here, we apply the theorem/lemma Finset.mem_union_left." }, { "formal": "by_cases hi : i = i\u2080", "informal": "We're breaking down the problem into cases based on hi." }, { "formal": "have : r i\u2080 \u2208 B i\u2080 := by simp [hri\u2080, mem_piFinset.1 hr i\u2080]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hri\u2080, mem_piFinset.1 hr i\u2080]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hi, mem_piFinset.1 hr i]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [add_zero, Surreal.nsmul_pow_two_powHalf, Nat.zero_eq, eq_self_iff_true,\n Surreal.powHalf_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 double_powHalf_succ_eq_powHalf (n + k), \u2190 double_powHalf_succ_eq_powHalf k,\n smul_algebra_smul_comm] at hk", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [le_antisymm_iff, le_antisymm_iff, le_iff_le_of_cmp_eq_cmp h,\n le_iff_le_of_cmp_eq_cmp (cmp_eq_cmp_symm.1 h)]", "informal": "We're rewriting part of the expression using [le_antisymm_iff,." }, { "formal": "exacts [Iso.refl _, (Category.comp_id _).trans (Category.id_comp _),\n (Category.comp_id _).trans (Category.id_comp _)]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "rw [isJacobson_iff_prime_eq]", "informal": "We're rewriting part of the expression using [isJacobson_iff_prime_eq]." }, { "formal": "intro P hP", "informal": "We introduce new variables P." }, { "formal": "by_cases hP_top : comap (algebraMap R S) P = \u22a4", "informal": "We're breaking down the problem into cases based on hP_top." }, { "formal": "simp [comap_eq_top_iff.1 hP_top]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [jacobson_eq_iff_jacobson_quotient_eq_bot]", "informal": "We're rewriting part of the expression using [jacobson_eq_iff_jacobson_quotient_eq_bot]." }, { "formal": "rw [eq_bot_iff, \u2190 jacobson_eq_iff_jacobson_quotient_eq_bot.1\n ((isJacobson_iff_prime_eq.1 hR) (comap (algebraMap R S) P) (comap_isPrime _ _)),\n comap_jacobson]", "informal": "We're rewriting part of the expression using [eq_bot_iff,." }, { "formal": "simp only [true_and_iff, Set.mem_image, bot_le, Set.mem_setOf_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact exists_ideal_over_maximal_of_isIntegral (isIntegral_quotient_of_isIntegral hRS) J\n (comap_bot_le_of_injective _ algebraMap_quotient_injective)", "informal": "Here, we provide the exact term exists_ideal_over_maximal_of_isIntegral that solves our current goal." }, { "formal": "exact (isOfFinOrder_iff_pow_eq_one g).mpr \u27e8n, npos, hn g\u27e9", "informal": "Here, we provide the exact term (isOfFinOrder_iff_pow_eq_one that solves our current goal." }, { "formal": "rw [lf_iff_exists_le]", "informal": "We're rewriting part of the expression using [lf_iff_exists_le]." }, { "formal": "rw [\u2190 le_iff_derivBFamily H]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 (H i hi).le_iff_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact h i hi", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [\u2190 map\u2082_mul, \u2190 map_uncurry_prod, \u2190 nhds_prod_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact continuous_mul.tendsto _", "informal": "Here, we provide the exact term continuous_mul.tendsto that solves our current goal." }, { "formal": "by_cases hm : m \u2264 m0", "informal": "We're breaking down the problem into cases based on hm." }, { "formal": "by_cases h\u03bcm : SigmaFinite (\u03bc.trim hm)", "informal": "We're breaking down the problem into cases based on h\u03bcm." }, { "formal": "exact (condexp_ae_eq_condexpL1 hm _).trans_le\n ((condexpL1_mono hf hg hfg).trans_eq (condexp_ae_eq_condexpL1 hm _).symm)", "informal": "Here, we provide the exact term (condexp_ae_eq_condexpL1 that solves our current goal." }, { "formal": "simp_rw [condexp_of_not_le hm]", "informal": "We're rewriting part of the expression using [condexp_of_not_le." }, { "formal": "simp_rw [condexp_of_not_sigmaFinite hm h\u03bcm]", "informal": "We're rewriting part of the expression using [condexp_of_not_sigmaFinite." }, { "formal": "simp only [leftLim, h, h'', not_true, or_self_iff, if_false]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact lim_eq h'", "informal": "Here, we provide the exact term lim_eq that solves our current goal." }, { "formal": "by_cases hx : z = x", "informal": "We're breaking down the problem into cases based on hx." }, { "formal": "simp [swap_apply_of_ne_of_ne, hx, hy] <;>\nexact h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [swap_apply_of_ne_of_ne, hx, hy] <;>\nexact h", "informal": "Here, we provide the exact term [swap_apply_of_ne_of_ne, that solves our current goal." }, { "formal": "rw [VectorMeasure.smul_apply, toSignedMeasure, toSignedMeasure,\n toSignedMeasure_sub_apply hi, toSignedMeasure_sub_apply hi, smul_sub, smul_posPart,\n smul_negPart, \u2190 ENNReal.toReal_smul, \u2190 ENNReal.toReal_smul, smul_toOuterMeasure,\n OuterMeasure.coe_smul, Pi.smul_apply, smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply]", "informal": "Here, we apply the theorem/lemma [VectorMeasure.smul_apply,." }, { "formal": "rw [VectorMeasure.smul_apply, toSignedMeasure, toSignedMeasure,\n toSignedMeasure_sub_apply hi, toSignedMeasure_sub_apply hi, smul_sub, smul_posPart,\n smul_negPart, \u2190 ENNReal.toReal_smul, \u2190 ENNReal.toReal_smul, smul_toOuterMeasure,\n OuterMeasure.coe_smul, Pi.smul_apply, smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply]", "informal": "We're rewriting part of the expression using [VectorMeasure.smul_apply,." }, { "formal": "rw [\u2190 sup_iterate_eq_nfp]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact sup_le_iff", "informal": "Here, we provide the exact term sup_le_iff that solves our current goal." }, { "formal": "rw [\u2190 image_op_smul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact IsClosed.smul_left_of_isCompact ht (hs.image continuous_op)", "informal": "Here, we provide the exact term IsClosed.smul_left_of_isCompact that solves our current goal." }, { "formal": "simp [cos, sub_eq_add_neg, exp_neg, add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Finset.card_range n, \u2190 Finset.prod_const]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact prod_sup_eq_top fun _ _ => h", "informal": "Here, we provide the exact term prod_sup_eq_top that solves our current goal." }, { "formal": "rw [rank, rank, mulVecLin_mul]", "informal": "We're rewriting part of the expression using [rank,." }, { "formal": "exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph0 _ _) (LinearMap.rank_comp_le_left _ _)", "informal": "Here, we provide the exact term Cardinal.toNat_le_of_le_of_lt_aleph0 that solves our current goal." }, { "formal": "cases x", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "simp only [Equiv.sumCongr_apply, Sum.map, coe_refl, comp.right_id, Sum.elim_inl, comp_apply,\n swap_apply_def, Sum.inl.injEq]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp only [Equiv.sumCongr_apply, Sum.map, coe_refl, comp.right_id, Sum.elim_inl, comp_apply,\n swap_apply_def, Sum.inl.injEq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Sum.map, swap_apply_of_ne_of_ne]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "let hc := isCokernelOfComp _ _ (colimit.isColimit (parallelPair (h \u226b f) 0))\n (by rw [\u2190 cancel_epi h, \u2190 Category.assoc, CokernelCofork.condition, comp_zero]) rfl", "informal": "We're rewriting part of the expression using hc." }, { "formal": "exact zero_of_epi_comp h (by rw [\u2190 hfg.1, Category.assoc])", "informal": "We're rewriting part of the expression using zero_of_epi_comp." }, { "formal": "exact zero_of_epi_comp h (by rw [\u2190 hfg.1, Category.assoc])", "informal": "Here, we provide the exact term zero_of_epi_comp that solves our current goal." }, { "formal": "rw [\u2190 cancel_epi h, \u2190 Category.assoc, CokernelCofork.condition, comp_zero]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 hfg.1, Category.assoc]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "classical\nfunext x\nsimp [Function.extend_def, apply_dite\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Function.extend_def, apply_dite\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Int.even_add, \u2190 Int.even_sub] at h", "informal": "We're rewriting part of the expression using [Int.even_add,." }, { "formal": "rw [eq_add_of_sub_eq hk, mul_add, add_assoc, add_sub_cancel, \u2190 two_mul, \u2190 mul_assoc]", "informal": "We're rewriting part of the expression using [eq_add_of_sub_eq." }, { "formal": "rw [eq_sub_of_add_eq hk, add_right_comm, \u2190 add_sub, mul_add, mul_sub, add_assoc, add_assoc,\n sub_add, add_assoc, \u2190 sub_sub (2 * n), sub_self, zero_sub, sub_neg_eq_add, \u2190 mul_assoc,\n mul_add]", "informal": "We're rewriting part of the expression using [eq_sub_of_add_eq." }, { "formal": "have h1 : p \u2260 0 := fun hp => by\n rw [hp, Polynomial.aroots_zero] at hx\n exact Multiset.not_mem_zero x hx", "informal": "We're rewriting part of the expression using h1." }, { "formal": "have h1 : p \u2260 0 := fun hp => by\n rw [hp, Polynomial.aroots_zero] at hx\n exact Multiset.not_mem_zero x hx", "informal": "Here, we provide the exact term h1 that solves our current goal." }, { "formal": "have h2 : minpoly K x \u2223 p.map (algebraMap F K) := by\n apply minpoly.dvd\n rw [Polynomial.aeval_def, Polynomial.eval\u2082_map, \u2190 Polynomial.eval_map, \u2190\n IsScalarTower.algebraMap_eq]\n exact (Polynomial.mem_roots (Polynomial.map_ne_zero h1)).mp hx", "informal": "Here, we apply the theorem/lemma h2." }, { "formal": "have h2 : minpoly K x \u2223 p.map (algebraMap F K) := by\n apply minpoly.dvd\n rw [Polynomial.aeval_def, Polynomial.eval\u2082_map, \u2190 Polynomial.eval_map, \u2190\n IsScalarTower.algebraMap_eq]\n exact (Polynomial.mem_roots (Polynomial.map_ne_zero h1)).mp hx", "informal": "We're rewriting part of the expression using h2." }, { "formal": "have h2 : minpoly K x \u2223 p.map (algebraMap F K) := by\n apply minpoly.dvd\n rw [Polynomial.aeval_def, Polynomial.eval\u2082_map, \u2190 Polynomial.eval_map, \u2190\n IsScalarTower.algebraMap_eq]\n exact (Polynomial.mem_roots (Polynomial.map_ne_zero h1)).mp hx", "informal": "Here, we provide the exact term h2 that solves our current goal." }, { "formal": "let key_equiv : (K\u27eex\u27ef.restrictScalars F \u2192\u2090[F] E) \u2243\n \u03a3 f : K \u2192\u2090[F] E, @AlgHom K K\u27eex\u27ef E _ _ _ _ (RingHom.toAlgebra f) := by\n change (K\u27eex\u27ef \u2192\u2090[F] E) \u2243 \u03a3 f : K \u2192\u2090[F] E, _\n exact algHomEquivSigma", "informal": "Here, we provide the exact term key_equiv that solves our current goal." }, { "formal": "haveI : \u2200 f : K \u2192\u2090[F] E, Fintype (@AlgHom K K\u27eex\u27ef E _ _ _ _ (RingHom.toAlgebra f)) := fun f => by\n have := Fintype.ofEquiv _ key_equiv\n apply Fintype.ofInjective (Sigma.mk f) fun _ _ H => eq_of_heq (Sigma.ext_iff.mp H).2", "informal": "Here, we apply the theorem/lemma :." }, { "formal": "rw [Fintype.card_congr key_equiv, Fintype.card_sigma, IntermediateField.adjoin.finrank h]", "informal": "We're rewriting part of the expression using [Fintype.card_congr." }, { "formal": "apply Finset.sum_const_nat", "informal": "Here, we apply the theorem/lemma Finset.sum_const_nat." }, { "formal": "intro f _", "informal": "We introduce new variables f." }, { "formal": "rw [\u2190 @IntermediateField.card_algHom_adjoin_integral K _ E _ _ x E _ (RingHom.toAlgebra f) h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [hp, Polynomial.aroots_zero] at hx", "informal": "We're rewriting part of the expression using [hp,." }, { "formal": "exact Multiset.not_mem_zero x hx", "informal": "Here, we provide the exact term Multiset.not_mem_zero that solves our current goal." }, { "formal": "apply minpoly.dvd", "informal": "Here, we apply the theorem/lemma minpoly.dvd." }, { "formal": "rw [Polynomial.aeval_def, Polynomial.eval\u2082_map, \u2190 Polynomial.eval_map, \u2190\n IsScalarTower.algebraMap_eq]", "informal": "We're rewriting part of the expression using [Polynomial.aeval_def,." }, { "formal": "exact (Polynomial.mem_roots (Polynomial.map_ne_zero h1)).mp hx", "informal": "Here, we provide the exact term (Polynomial.mem_roots that solves our current goal." }, { "formal": "exact algHomEquivSigma", "informal": "Here, we provide the exact term algHomEquivSigma that solves our current goal." }, { "formal": "apply Fintype.ofInjective (Sigma.mk f) fun _ _ H => eq_of_heq (Sigma.ext_iff.mp H).2", "informal": "Here, we apply the theorem/lemma Fintype.ofInjective." }, { "formal": "exact Polynomial.Separable.of_dvd ((Polynomial.separable_map (algebraMap F K)).mpr hp) h2", "informal": "Here, we provide the exact term Polynomial.Separable.of_dvd that solves our current goal." }, { "formal": "rw [Polynomial.splits_map_iff, \u2190 @IsScalarTower.algebraMap_eq _ _ _ _ _ _ _ (_) _ _]", "informal": "We're rewriting part of the expression using [Polynomial.splits_map_iff,." }, { "formal": "exact sp.splits", "informal": "Here, we provide the exact term sp.splits that solves our current goal." }, { "formal": "simp_rw [contMDiffAt_totalSpace, and_iff_right_iff_imp]", "informal": "We're rewriting part of the expression using [contMDiffAt_totalSpace,." }, { "formal": "exact contMDiffAt_id", "informal": "Here, we provide the exact term contMDiffAt_id that solves our current goal." }, { "formal": "if h : a \u2264 b\nthen simp [min_def, if_pos h]; exact h\u2081\nelse simp [min_def, if_neg h]; exact h\u2082", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "if h : a \u2264 b\nthen simp [min_def, if_pos h]; exact h\u2081\nelse simp [min_def, if_neg h]; exact h\u2082", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "simp [min_def, if_pos h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact h\u2081", "informal": "Here, we provide the exact term h\u2081 that solves our current goal." }, { "formal": "simp [min_def, if_neg h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact h\u2082", "informal": "Here, we provide the exact term h\u2082 that solves our current goal." }, { "formal": "rw [\u2190 one_mul (X ^ n : R[X]), \u2190 C_1, rootSet_C_mul_X_pow hn]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact one_ne_zero", "informal": "Here, we provide the exact term one_ne_zero that solves our current goal." }, { "formal": "simp [plusMap, J.diagramNatTrans_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [lintegral_eq_nnreal]", "informal": "We're rewriting part of the expression using [lintegral_eq_nnreal]." }, { "formal": "rcases ENNReal.lt_iff_exists_coe.1 ha with \u27e8r, rfl, _\u27e9", "informal": "We're breaking down the problem into cases based on ENNReal.lt_iff_exists_coe.1." }, { "formal": "have eq_rs : (const \u03b1 r : \u03b1 \u2192\u209b \u211d\u22650\u221e) * map c s = rs.map c := by\n ext1 a\n exact ENNReal.coe_mul.symm", "informal": "Here, we provide the exact term eq_rs that solves our current goal." }, { "formal": "have mono : \u2200 r : \u211d\u22650\u221e, Monotone fun n => rs.map c \u207b\u00b9' {r} \u2229 { a | r \u2264 f n a } := by\n intro r i j h\n refine' inter_subset_inter (Subset.refl _) _\n intro x (hx : r \u2264 f i x)\n exact le_trans hx (h_mono h x)", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "have mono : \u2200 r : \u211d\u22650\u221e, Monotone fun n => rs.map c \u207b\u00b9' {r} \u2229 { a | r \u2264 f n a } := by\n intro r i j h\n refine' inter_subset_inter (Subset.refl _) _\n intro x (hx : r \u2264 f i x)\n exact le_trans hx (h_mono h x)", "informal": "We introduce new variables mono." }, { "formal": "have mono : \u2200 r : \u211d\u22650\u221e, Monotone fun n => rs.map c \u207b\u00b9' {r} \u2229 { a | r \u2264 f n a } := by\n intro r i j h\n refine' inter_subset_inter (Subset.refl _) _\n intro x (hx : r \u2264 f i x)\n exact le_trans hx (h_mono h x)", "informal": "Here, we provide the exact term mono that solves our current goal." }, { "formal": "exact ENNReal.coe_mul.symm", "informal": "Here, we provide the exact term ENNReal.coe_mul.symm that solves our current goal." }, { "formal": "intro p", "informal": "We introduce new variables p." }, { "formal": "rw [\u2190 inter_iUnion]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "nth_rw 1 [\u2190 inter_univ (map c rs \u207b\u00b9' {p})]", "informal": "We're rewriting part of the expression using 1." }, { "formal": "by_cases p_eq : p = 0", "informal": "We're breaking down the problem into cases based on p_eq." }, { "formal": "simp only [coe_map, mem_preimage, Function.comp_apply, mem_singleton_iff] at hx", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : s x \u2260 0 := by\n refine' mt _ this\n intro h\n rw [h, mul_zero]", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : s x \u2260 0 := by\n refine' mt _ this\n intro h\n rw [h, mul_zero]", "informal": "We introduce new variables :." }, { "formal": "have : (rs.map c) x < \u2a06 n : \u2115, f n x := by\n refine' lt_of_lt_of_le (ENNReal.coe_lt_coe.2 _) (hsf x)\n suffices r * s x < 1 * s x by simpa\n exact mul_lt_mul_of_pos_right ha (pos_iff_ne_zero.2 this)", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "rcases lt_iSup_iff.1 this with \u27e8i, hi\u27e9", "informal": "We're breaking down the problem into cases based on lt_iSup_iff.1." }, { "formal": "exact mem_iUnion.2 \u27e8i, le_of_lt hi\u27e9", "informal": "Here, we provide the exact term mem_iUnion.2 that solves our current goal." }, { "formal": "simp [p_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rw [h, mul_zero]", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "exact mul_lt_mul_of_pos_right ha (pos_iff_ne_zero.2 this)", "informal": "Here, we provide the exact term mul_lt_mul_of_pos_right that solves our current goal." }, { "formal": "intro r i j h", "informal": "We introduce new variables r." }, { "formal": "refine' inter_subset_inter (Subset.refl _) _", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "intro x (hx : r \u2264 f i x)", "informal": "We introduce new variables x." }, { "formal": "exact le_trans hx (h_mono h x)", "informal": "Here, we provide the exact term le_trans that solves our current goal." }, { "formal": "rw [\u2190 const_mul_lintegral, eq_rs, SimpleFunc.lintegral]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [(eq _).symm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [measure_iUnion_eq_iSup (directed_of_sup <| mono x), ENNReal.mul_iSup]", "informal": "We're rewriting part of the expression using [measure_iUnion_eq_iSup." }, { "formal": "rw [ENNReal.finset_sum_iSup_nat]", "informal": "We're rewriting part of the expression using [ENNReal.finset_sum_iSup_nat]." }, { "formal": "intro p i j h", "informal": "We introduce new variables p." }, { "formal": "exact mul_le_mul_left' (measure_mono <| mono p h) _", "informal": "Here, we provide the exact term mul_le_mul_left' that solves our current goal." }, { "formal": "rw [restrict_lintegral _ (h_meas n)]", "informal": "We're rewriting part of the expression using [restrict_lintegral." }, { "formal": "simp (config := { contextual := true })", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 SimpleFunc.lintegral_eq_lintegral]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [map_apply] at h_meas", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact indicator_apply_le id", "informal": "Here, we provide the exact term indicator_apply_le that solves our current goal." }, { "formal": "rw [OuterMeasure.top_caratheodory]", "informal": "We're rewriting part of the expression using [OuterMeasure.top_caratheodory]." }, { "formal": "exact le_top", "informal": "Here, we provide the exact term le_top that solves our current goal." }, { "formal": "cases' s.eq_empty_or_nonempty with h h <;>\n simp [h, toMeasure_apply \u22a4 _ hs, OuterMeasure.top_apply]", "informal": "Here, we apply the theorem/lemma s.eq_empty_or_nonempty." }, { "formal": "cases' s.eq_empty_or_nonempty with h h <;>\n simp [h, toMeasure_apply \u22a4 _ hs, OuterMeasure.top_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact this.mono (Nat.le_ceil p)", "informal": "Here, we provide the exact term this.mono that solves our current goal." }, { "formal": "rintro b \u27e8_hb, a, hne, hlt\u27e9", "informal": "We introduce new variables b." }, { "formal": "rw [midpoint_comm, oangle_midpoint_left]", "informal": "We're rewriting part of the expression using [midpoint_comm,." }, { "formal": "rw [Int.max_def]", "informal": "We're rewriting part of the expression using [Int.max_def]." }, { "formal": "split <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "constructor <;> intro h", "informal": "We introduce new variables <;>." }, { "formal": "rw [eq_bot_iff]", "informal": "We're rewriting part of the expression using [eq_bot_iff]." }, { "formal": "rintro x \u27e8a, hax\u27e9", "informal": "We introduce new variables x." }, { "formal": "exact nonZeroDivisors.coe_ne_zero a h0", "informal": "Here, we provide the exact term nonZeroDivisors.coe_ne_zero that solves our current goal." }, { "formal": "exact h0", "informal": "Here, we provide the exact term h0 that solves our current goal." }, { "formal": "by_cases ha : a = 0", "informal": "We're breaking down the problem into cases based on ha." }, { "formal": "exact ha", "informal": "Here, we provide the exact term ha that solves our current goal." }, { "formal": "rw [\u2190 mem_bot R, \u2190 h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact \u27e8\u27e8a, mem_nonZeroDivisors_of_ne_zero ha\u27e9, hax\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e8a, that solves our current goal." }, { "formal": "apply Pairwise.forall_of_forall", "informal": "Here, we apply the theorem/lemma Pairwise.forall_of_forall." }, { "formal": "exact fun a b h hne => hR (h hne.symm)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "exact fun _ _ hx => (hx rfl).elim", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "exact hl.imp (@fun a b h _ => by exact h)", "informal": "Here, we provide the exact term hl.imp that solves our current goal." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "constructor <;> rintro \u27e8c\u27e9", "informal": "We introduce new variables <;>." }, { "formal": "exact \u27e8a\u27e9", "informal": "Here, we provide the exact term \u27e8a\u27e9 that solves our current goal." }, { "formal": "exact \u27e8pureCauchy c\u27e9", "informal": "Here, we provide the exact term \u27e8pureCauchy that solves our current goal." }, { "formal": "simp only [Filter.lift, tendsto_iInf]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Submodule.comap_map_eq, sup_of_le_left h]", "informal": "We're rewriting part of the expression using [Submodule.comap_map_eq,." }, { "formal": "rw [Coprime, Coprime, gcd_mul_left_add_left]", "informal": "We're rewriting part of the expression using [Coprime,." }, { "formal": "intro b m o hb ho", "informal": "We introduce new variables b." }, { "formal": "rw [foldl_append, foldl_cons, foldl_nil, argAux] at ho", "informal": "We're rewriting part of the expression using [foldl_append,." }, { "formal": "rw [hf, Option.mem_def] at ho", "informal": "We're rewriting part of the expression using [hf,." }, { "formal": "dsimp only at ho", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [hf] at ho", "informal": "We're rewriting part of the expression using [hf]." }, { "formal": "rw [foldl_argAux_eq_none] at hf", "informal": "We're rewriting part of the expression using [foldl_argAux_eq_none]." }, { "formal": "exact fun hba => ih h hf (hr\u2081 hba hac)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "exact ih h hf", "informal": "Here, we provide the exact term ih that solves our current goal." }, { "formal": "simp only [Set.Subsingleton, ball_image_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [ih (derivative p), iterate_derivative_neg, derivative_comp, pow_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [coe_map, coe_inter, Set.image_inter f.injective]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 add_le_add_iff_left b, Ordinal.add_sub_cancel_of_le h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "have hx\u2080 : x \u2260 0 := fun h\u2080 => by simp [h\u2080] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hy\u2080 : y \u2260 0 := fun h\u2080 => by simp [h\u2080] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h\u2080] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [h\u2080] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro \u27e8hx, \u27e8r, \u27e8hr, rfl\u27e9\u27e9\u27e9", "informal": "We introduce new variables \u27e8hx,." }, { "formal": "simp only [norm_div, norm_mul, norm_ofReal, abs_norm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact norm_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul hx hr", "informal": "Here, we provide the exact term norm_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul that solves our current goal." }, { "formal": "rw [hI, Ideal.top_mul]", "informal": "We're rewriting part of the expression using [hI,." }, { "formal": "rw [hJ]", "informal": "We're rewriting part of the expression using [hJ]." }, { "formal": "exact le_top", "informal": "Here, we provide the exact term le_top that solves our current goal." }, { "formal": "rw [hI, spanNorm_eq_bot_iff.mp hI, bot_mul, spanNorm_bot]", "informal": "We're rewriting part of the expression using [hI,." }, { "formal": "exact bot_le", "informal": "Here, we provide the exact term bot_le that solves our current goal." }, { "formal": "rw [hJ, spanNorm_eq_bot_iff.mp hJ, mul_bot, spanNorm_bot]", "informal": "We're rewriting part of the expression using [hJ,." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rintro hnat \u27e8r, hr\u27e9", "informal": "We introduce new variables hnat." }, { "formal": "exact not_tendsto_nhds_of_tendsto_atTop hnat _ (hasSum_iff_tendsto_nat.1 hr)", "informal": "Here, we provide the exact term not_tendsto_nhds_of_tendsto_atTop that solves our current goal." }, { "formal": "rw [Measure.map_neg_eq_self (volume : Measure \u211d)] at this", "informal": "We're rewriting part of the expression using [Measure.map_neg_eq_self." }, { "formal": "simp_rw [\u2190 integral_Ici_eq_integral_Ioi, this, neg_preimage, preimage_neg_Ici, neg_neg]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [mk_eq_two_iff]", "informal": "We're rewriting part of the expression using [mk_eq_two_iff]." }, { "formal": "rintro \u27e8a, b, hne, h\u27e9", "informal": "We introduce new variables \u27e8a,." }, { "formal": "simp only [eq_univ_iff_forall, mem_insert_iff, mem_singleton_iff] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases h x with (rfl | rfl)", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "rintro \u27e8y, hne, hy\u27e9", "informal": "We introduce new variables \u27e8y,." }, { "formal": "exact \u27e8x, y, hne.symm, eq_univ_of_forall fun z => or_iff_not_imp_left.2 (hy z)\u27e9", "informal": "Here, we provide the exact term \u27e8x, that solves our current goal." }, { "formal": "simp [h, IH]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [\u2190 lt_top_iff_ne_top, einfsep_lt_top]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "refine' le_antisymm (iSup_le fun i => Filter.comap_cocompact_le (continuous_apply i)) _", "informal": "Here, we apply the theorem/lemma le_antisymm." }, { "formal": "simp only [compl_mem_coprod\u1d62, Filter.mem_cocompact, compl_subset_compl, image_subset_iff] at H \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8Set.pi univ K, isCompact_univ_pi hKc, fun f hf i _ => htK i hf\u27e9", "informal": "Here, we provide the exact term \u27e8Set.pi that solves our current goal." }, { "formal": "induction n with\n| zero => simp [invariants_le]\n| succ n ihn => exact le_trans (le_inf ihn le_rfl) (inf_le_invariants_comp _ _)", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "induction n with\n| zero => simp [invariants_le]\n| succ n ihn => exact le_trans (le_inf ihn le_rfl) (inf_le_invariants_comp _ _)", "informal": "Here, we provide the exact term n that solves our current goal." }, { "formal": "simp [invariants_le]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact le_trans (le_inf ihn le_rfl) (inf_le_invariants_comp _ _)", "informal": "Here, we provide the exact term le_trans that solves our current goal." }, { "formal": "refine' (integral_integral_swap (by apply hf.convolution_integrand L hg)).trans _", "informal": "Here, we apply the theorem/lemma (integral_integral_swap." }, { "formal": "simp_rw [integral_comp_comm _ (hg.comp_sub_right _), integral_sub_right_eq_self]", "informal": "We're rewriting part of the expression using [integral_comp_comm." }, { "formal": "exact (L.flip (\u222b x, g x \u2202\u03bc)).integral_comp_comm hf", "informal": "Here, we provide the exact term (L.flip that solves our current goal." }, { "formal": "apply hf.convolution_integrand L hg", "informal": "Here, we apply the theorem/lemma hf.convolution_integrand." }, { "formal": "exact (and_iff_left le_top).symm", "informal": "Here, we provide the exact term (and_iff_left that solves our current goal." }, { "formal": "rw [MonovaryOn] at h", "informal": "We're rewriting part of the expression using [MonovaryOn]." }, { "formal": "simp only [\u2190 s.sum_erase_add _ hx, \u2190 (s.erase x).sum_erase_add _ (mem_erase.2 \u27e8hxy.symm, hy\u27e9),\n add_assoc, Equiv.coe_trans, Function.comp_apply, swap_apply_right, swap_apply_left]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [mem_erase] at hz", "informal": "We're rewriting part of the expression using [mem_erase]." }, { "formal": "rw [swap_apply_of_ne_of_ne hz.2.1 hz.1]", "informal": "We're rewriting part of the expression using [swap_apply_of_ne_of_ne." }, { "formal": "cases lt_irrefl _ hfxy", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "cases lt_irrefl _ hfxy", "informal": "We're breaking down the problem into cases based on lt_irrefl." }, { "formal": "simp_rw [Function.comp_apply, apply_inv_self]", "informal": "We're rewriting part of the expression using [Function.comp_apply,." }, { "formal": "exact fun t => (star t).topologicalClosure_minimal (Subalgebra.star_mono subset_closure)\n (isClosed_closure.preimage continuous_star)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rcases hr.lt_or_eq with (hr | rfl)", "informal": "We're breaking down the problem into cases based on hr.lt_or_eq." }, { "formal": "rw [closedBall_eq_empty.2 hr]", "informal": "We're rewriting part of the expression using [closedBall_eq_empty.2." }, { "formal": "exact subsingleton_empty", "informal": "Here, we provide the exact term subsingleton_empty that solves our current goal." }, { "formal": "rw [closedBall_zero]", "informal": "We're rewriting part of the expression using [closedBall_zero]." }, { "formal": "exact subsingleton_singleton", "informal": "Here, we provide the exact term subsingleton_singleton that solves our current goal." }, { "formal": "rw [sq, sq]", "informal": "We're rewriting part of the expression using [sq,." }, { "formal": "exact (IsCoprime.mul_left h2 h2).mul_add_left_left r", "informal": "Here, we provide the exact term (IsCoprime.mul_left that solves our current goal." }, { "formal": "if z : d = 0 then simp [z] else simp [\u2190 normalize_eq_mkRat z, neg_normalize]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [z]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [\u2190 normalize_eq_mkRat z, neg_normalize]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "obtain \u27e8\u27e8_, a, ha, rfl\u27e9, e\u27e9 :=\n IsLocalization.exists_smul_mem_of_mem_adjoin (M.map (algebraMap R S)) x s (Algebra.adjoin R _)\n Algebra.subset_adjoin (by rintro _ \u27e8a, _, rfl\u27e9; exact Subalgebra.algebraMap_mem _ a) hx", "informal": "We introduce new variables \u27e8\u27e8_,." }, { "formal": "obtain \u27e8\u27e8_, a, ha, rfl\u27e9, e\u27e9 :=\n IsLocalization.exists_smul_mem_of_mem_adjoin (M.map (algebraMap R S)) x s (Algebra.adjoin R _)\n Algebra.subset_adjoin (by rintro _ \u27e8a, _, rfl\u27e9; exact Subalgebra.algebraMap_mem _ a) hx", "informal": "Here, we provide the exact term \u27e8\u27e8_, that solves our current goal." }, { "formal": "rintro _ \u27e8a, _, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact Subalgebra.algebraMap_mem _ a", "informal": "Here, we provide the exact term Subalgebra.algebraMap_mem that solves our current goal." }, { "formal": "simp only [self_add_star', two_mul, coe_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases eq_zero_or_neZero n with (rfl | hn)", "informal": "We're breaking down the problem into cases based on eq_zero_or_neZero." }, { "formal": "apply Nat.dvd_antisymm", "informal": "Here, we apply the theorem/lemma Nat.dvd_antisymm." }, { "formal": "exact Monoid.exponent_eq_zero_of_order_zero orderOf_r_one", "informal": "Here, we provide the exact term Monoid.exponent_eq_zero_of_order_zero that solves our current goal." }, { "formal": "apply Monoid.exponent_dvd_of_forall_pow_eq_one", "informal": "Here, we apply the theorem/lemma Monoid.exponent_dvd_of_forall_pow_eq_one." }, { "formal": "rintro (m | m)", "informal": "We introduce new variables (m." }, { "formal": "rw [\u2190 orderOf_dvd_iff_pow_eq_one, orderOf_r]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (Nat.div_mul_cancel (Nat.gcd_dvd_left n m.val)).symm", "informal": "Here, we provide the exact term (Nat.div_mul_cancel that solves our current goal." }, { "formal": "rw [\u2190 orderOf_dvd_iff_pow_eq_one, orderOf_sr]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact dvd_lcm_right n 2", "informal": "Here, we provide the exact term dvd_lcm_right that solves our current goal." }, { "formal": "apply lcm_dvd", "informal": "Here, we apply the theorem/lemma lcm_dvd." }, { "formal": "exact orderOf_r_one.symm", "informal": "Here, we provide the exact term orderOf_r_one.symm that solves our current goal." }, { "formal": "exact (orderOf_sr 0).symm", "informal": "Here, we provide the exact term (orderOf_sr that solves our current goal." }, { "formal": "conv_lhs => rw [\u2190 mul_one p]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [hn, nsmul_eq_mul, \u2190 mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,\n mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]", "informal": "We're rewriting part of the expression using [hn,." }, { "formal": "exact (addOrderOf_pos_iff.mpr hu).ne'", "informal": "Here, we provide the exact term (addOrderOf_pos_iff.mpr that solves our current goal." }, { "formal": "simp only [variance, evariance_zero, ENNReal.zero_toReal]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases hr.eq_or_lt with (rfl | h)", "informal": "We're breaking down the problem into cases based on hr.eq_or_lt." }, { "formal": "simp only [zero_pow (finrank_pos (K := \u211d) (V := E)), measure_empty, zero_mul,\n ENNReal.ofReal_zero, ball_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact addHaar_ball_mul_of_pos \u03bc x h s", "informal": "Here, we provide the exact term addHaar_ball_mul_of_pos that solves our current goal." }, { "formal": "simp only [repr_symm_apply, coord_apply, repr_total]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have h : \u00acFunction.Injective sq := by\n simp only [Function.Injective, not_forall, exists_prop]\n refine' \u27e8-1, 1, _, Ring.neg_one_ne_one_of_char_ne_two hF\u27e9\n simp only [one_pow, neg_one_sq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Finite.injective_iff_surjective] at h", "informal": "We're rewriting part of the expression using [Finite.injective_iff_surjective]." }, { "formal": "simp_rw [IsSquare, \u2190 pow_two, @eq_comm _ _ (_ ^ 2)]", "informal": "We're rewriting part of the expression using [IsSquare,." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "simp only [Function.Injective, not_forall, exists_prop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [one_pow, neg_one_sq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Nat.cast_one, val_nat_cast]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro \u03b5 \u03b5_pos", "informal": "We introduce new variables \u03b5." }, { "formal": "rcases (exists_nat_gt (1 / \u03b5) : \u2203 N' : \u2115, 1 / \u03b5 < N') with \u27e8N', one_div_\u03b5_lt_N'\u27e9", "informal": "We're breaking down the problem into cases based on (exists_nat_gt." }, { "formal": "intro n n_ge_N", "informal": "We introduce new variables n." }, { "formal": "rw [this]", "informal": "We're rewriting part of the expression using [this]." }, { "formal": "exact lt_of_le_of_lt abs_v_sub_conv_le this", "informal": "Here, we provide the exact term lt_of_le_of_lt that solves our current goal." }, { "formal": "exact (div_lt_iff zero_lt_mul_conts).mpr this", "informal": "Here, we provide the exact term (div_lt_iff that solves our current goal." }, { "formal": "have one_lt_\u03b5_mul_N : 1 < \u03b5 * n := by\n have one_lt_\u03b5_mul_N' : 1 < \u03b5 * (N' : K) := (div_lt_iff' \u03b5_pos).mp one_div_\u03b5_lt_N'\n have : (N' : K) \u2264 N := by exact_mod_cast le_max_left _ _\n have : \u03b5 * N' \u2264 \u03b5 * n :=\n (mul_le_mul_left \u03b5_pos).mpr (le_trans this (by exact_mod_cast n_ge_N))\n exact lt_of_lt_of_le one_lt_\u03b5_mul_N' this", "informal": "Here, we provide the exact term one_lt_\u03b5_mul_N that solves our current goal." }, { "formal": "exact lt_of_lt_of_le one_lt_\u03b5_mul_N this", "informal": "Here, we provide the exact term lt_of_lt_of_le that solves our current goal." }, { "formal": "exact (mul_le_mul_left \u03b5_pos).mpr this", "informal": "Here, we provide the exact term (mul_le_mul_left that solves our current goal." }, { "formal": "exact lt_of_lt_of_le one_lt_\u03b5_mul_N' this", "informal": "Here, we provide the exact term lt_of_lt_of_le that solves our current goal." }, { "formal": "rw [\u2190 preimage_coe_Ici, image_preimage_eq_inter_range, range_coe, Ici_inter_Iio]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 lt_one_iff, \u2190 @cast_one \u03b1]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact floor_lt' Nat.one_ne_zero", "informal": "Here, we provide the exact term floor_lt' that solves our current goal." }, { "formal": "apply MorphismProperty.top_apply", "informal": "Here, we apply the theorem/lemma MorphismProperty.top_apply." }, { "formal": "suffices \u2200 (X\u2081 X\u2082 : Paths (LocQuiver W)) (f : X\u2081 \u27f6 X\u2082), P (G.map f) by\n rcases X with \u27e8\u27e8X\u27e9\u27e9\n rcases Y with \u27e8\u27e8Y\u27e9\u27e9\n simpa only [Functor.image_preimage] using this _ _ (G.preimage f)", "informal": "We're breaking down the problem into cases based on \u2200." }, { "formal": "intros X\u2081 X\u2082 p", "informal": "We introduce new variables X\u2081." }, { "formal": "rcases X with \u27e8\u27e8X\u27e9\u27e9", "informal": "We're breaking down the problem into cases based on X." }, { "formal": "rcases Y with \u27e8\u27e8Y\u27e9\u27e9", "informal": "We're breaking down the problem into cases based on Y." }, { "formal": "rw [show p'.cons g = p' \u226b Quiver.Hom.toPath g by rfl, G.map_comp]", "informal": "We're rewriting part of the expression using [show." }, { "formal": "rcases g with (g | \u27e8g, hg\u27e9)", "informal": "We're breaking down the problem into cases based on g." }, { "formal": "apply hP\u2081", "informal": "Here, we apply the theorem/lemma hP\u2081." }, { "formal": "apply hP\u2082", "informal": "Here, we apply the theorem/lemma hP\u2082." }, { "formal": "rw [\u2190 h, inv_mul_cancel_right_of_invertible]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [h, mul_inv_cancel_right_of_invertible]", "informal": "We're rewriting part of the expression using [h,." }, { "formal": "rw [comapDomain'_apply]", "informal": "We're rewriting part of the expression using [comapDomain'_apply]." }, { "formal": "rw [single_eq_same, single_eq_same]", "informal": "We're rewriting part of the expression using [single_eq_same,." }, { "formal": "rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh'.injective.ne hik.symm)]", "informal": "We're rewriting part of the expression using [single_eq_of_ne." }, { "formal": "rw [withConstants, card_sum, card_constantsOn]", "informal": "We're rewriting part of the expression using [withConstants,." }, { "formal": "rw [iInf_insert, iInf_singleton]", "informal": "We're rewriting part of the expression using [iInf_insert,." }, { "formal": "rw [Pi.add_apply, Finset.sum_apply]", "informal": "We're rewriting part of the expression using [Pi.add_apply,." }, { "formal": "rw [stoppedProcess_eq_of_le h, Set.indicator_of_mem, Finset.sum_eq_zero, add_zero]", "informal": "We're rewriting part of the expression using [stoppedProcess_eq_of_le." }, { "formal": "intro m hm", "informal": "We introduce new variables m." }, { "formal": "rw [Finset.mem_filter] at hm", "informal": "We're rewriting part of the expression using [Finset.mem_filter]." }, { "formal": "exact (hm.2.trans_le h).ne'", "informal": "Here, we provide the exact term (hm.2.trans_le that solves our current goal." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [stoppedProcess_eq_of_ge (le_of_lt h), Finset.sum_eq_single_of_mem (\u03c4 \u03c9)]", "informal": "We're rewriting part of the expression using [stoppedProcess_eq_of_ge." }, { "formal": "rw [Set.indicator_of_not_mem, zero_add, Set.indicator_of_mem]", "informal": "We're rewriting part of the expression using [Set.indicator_of_not_mem,." }, { "formal": "exact rfl", "informal": "Here, we provide the exact term rfl that solves our current goal." }, { "formal": "exact not_le.2 h", "informal": "Here, we provide the exact term not_le.2 that solves our current goal." }, { "formal": "rw [Finset.mem_filter]", "informal": "We're rewriting part of the expression using [Finset.mem_filter]." }, { "formal": "exact \u27e8hbdd \u03c9 h, h\u27e9", "informal": "Here, we provide the exact term \u27e8hbdd that solves our current goal." }, { "formal": "intro b _ hneq", "informal": "We introduce new variables b." }, { "formal": "rw [Set.indicator_of_not_mem]", "informal": "We're rewriting part of the expression using [Set.indicator_of_not_mem]." }, { "formal": "exact hneq.symm", "informal": "Here, we provide the exact term hneq.symm that solves our current goal." }, { "formal": "rw [\u2190 Int.not_le, Decidable.not_not]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [mul_assoc, \u2190 zpow_add]", "informal": "We're rewriting part of the expression using [mul_assoc,." }, { "formal": "erw [smul_eq_mul]", "informal": "We're rewriting part of the expression using [smul_eq_mul]." }, { "formal": "exact iSup_le fun i x hx => Set.mem_iUnion.2 \u27e8i, hx\u27e9", "informal": "Here, we provide the exact term iSup_le that solves our current goal." }, { "formal": "by_cases hm : m \u2264 m0", "informal": "We're breaking down the problem into cases based on hm." }, { "formal": "by_cases hfint : Integrable f \u03bc", "informal": "We're breaking down the problem into cases based on hfint." }, { "formal": "rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]", "informal": "We're rewriting part of the expression using [integral_eq_lintegral_of_nonneg_ae,." }, { "formal": "simp_rw [condexp_of_not_le hm, Pi.zero_apply, abs_zero, integral_zero]", "informal": "We're rewriting part of the expression using [condexp_of_not_le." }, { "formal": "exact integral_nonneg fun x => abs_nonneg _", "informal": "Here, we provide the exact term integral_nonneg that solves our current goal." }, { "formal": "simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,\n mul_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact integral_nonneg fun x => abs_nonneg _", "informal": "Here, we provide the exact term integral_nonneg that solves our current goal." }, { "formal": "rw [ENNReal.toReal_le_toReal] <;> simp_rw [\u2190 Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]", "informal": "We're rewriting part of the expression using [ENNReal.toReal_le_toReal]." }, { "formal": "rw [\u2190 snorm_one_eq_lintegral_nnnorm, \u2190 snorm_one_eq_lintegral_nnnorm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact snorm_one_condexp_le_snorm _", "informal": "Here, we provide the exact term snorm_one_condexp_le_snorm that solves our current goal." }, { "formal": "exact ne_of_lt integrable_condexp.2", "informal": "Here, we provide the exact term ne_of_lt that solves our current goal." }, { "formal": "exact ne_of_lt hfint.2", "informal": "Here, we provide the exact term ne_of_lt that solves our current goal." }, { "formal": "exact eventually_of_forall fun x => abs_nonneg _", "informal": "Here, we provide the exact term eventually_of_forall that solves our current goal." }, { "formal": "simp_rw [\u2190 Real.norm_eq_abs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact hfint.1.norm", "informal": "Here, we provide the exact term hfint.1.norm that solves our current goal." }, { "formal": "exact eventually_of_forall fun x => abs_nonneg _", "informal": "Here, we provide the exact term eventually_of_forall that solves our current goal." }, { "formal": "simp_rw [\u2190 Real.norm_eq_abs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (stronglyMeasurable_condexp.mono hm).aestronglyMeasurable.norm", "informal": "Here, we provide the exact term (stronglyMeasurable_condexp.mono that solves our current goal." }, { "formal": "simp [uniformOfFintype, hs]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "(cases' h with _ _ _ _ eb _ h\u2081 h\u2082 h\u2083; exact h\u2083)", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "exact h\u2083", "informal": "Here, we provide the exact term h\u2083 that solves our current goal." }, { "formal": "rw [\u2190 lift_id #_, \u2190 lift_id #R[X]]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact cardinal_mk_lift_le_mul R A", "informal": "Here, we provide the exact term cardinal_mk_lift_le_mul that solves our current goal." }, { "formal": "rw [LinearMapClass.ker_eq_bot]", "informal": "We're rewriting part of the expression using [LinearMapClass.ker_eq_bot]." }, { "formal": "rcases coercive.antilipschitz with \u27e8_, _, antilipschitz\u27e9", "informal": "We're breaking down the problem into cases based on coercive.antilipschitz." }, { "formal": "exact antilipschitz.injective", "informal": "Here, we provide the exact term antilipschitz.injective that solves our current goal." }, { "formal": "simp_rw [accumulate_def, mem_iUnion\u2082, exists_prop]", "informal": "We're rewriting part of the expression using [accumulate_def,." }, { "formal": "apply Subtype.eq", "informal": "Here, we apply the theorem/lemma Subtype.eq." }, { "formal": "dsimp [toSeq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply get_eq_of_mem", "informal": "Here, we apply the theorem/lemma get_eq_of_mem." }, { "formal": "rw [get?_ofSeq]", "informal": "We're rewriting part of the expression using [get?_ofSeq]." }, { "formal": "apply ret_mem", "informal": "Here, we apply the theorem/lemma ret_mem." }, { "formal": "exact le_rfl", "informal": "Here, we provide the exact term le_rfl that solves our current goal." }, { "formal": "exact le_trans (h n) ih", "informal": "Here, we provide the exact term le_trans that solves our current goal." }, { "formal": "simp_rw [FunLike.ext_iff]", "informal": "We're rewriting part of the expression using [FunLike.ext_iff]." }, { "formal": "apply h2.mul_left_cancel", "informal": "Here, we apply the theorem/lemma h2.mul_left_cancel." }, { "formal": "rw [two_mul, two_mul, h x x, QuadraticForm.polar_self, two_mul, map_add]", "informal": "We're rewriting part of the expression using [two_mul,." }, { "formal": "rw [comap_map_of_surjective _ hf, comap_top] at h", "informal": "We're rewriting part of the expression using [comap_map_of_surjective." }, { "formal": "exact h \u25b8 sup_le (le_of_eq rfl) hk", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "rw [\u2190 ha, \u2190 hb, \u2190 _root_.map_mul f, mem_map_iff_of_surjective _ hf] at hxy", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rcases hxy with \u27e8c, hc, hc'\u27e9", "informal": "We're breaking down the problem into cases based on hxy." }, { "formal": "rw [\u2190 sub_eq_zero, \u2190 map_sub] at hc'", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 Subobject.factorThru_arrow _ _ w, Category.assoc, kernelSubobject_arrow_comp,\n comp_zero]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [hs]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [sum_const, card_range, Nat.smul_one_eq_coe] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact this tendsto_nat_cast_atTop_atTop", "informal": "Here, we provide the exact term this that solves our current goal." }, { "formal": "simp only [log_im, arg_le_pi]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [card, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [comp_apply, map_smul, eval_smul, Polynomial.comp, Polynomial.eval_map, comp_apply]", "informal": "We're rewriting part of the expression using [comp_apply,." }, { "formal": "rw [mul_assoc, inv_mul, mul_one]", "informal": "We're rewriting part of the expression using [mul_assoc,." }, { "formal": "conv_rhs => rw [\u2190 Polynomial.sum_C_mul_X_pow_eq p]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "simp only [eval\u2082_eq_sum, sum_def]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [f.map_sum, f.map_mul, f.map_pow, eq_intCast, map_intCast]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [Polynomial.C_eq_algebraMap]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [LinearEquiv.symm_apply_eq, directSum_lof_tmul_lof]", "informal": "We're rewriting part of the expression using [LinearEquiv.symm_apply_eq,." }, { "formal": "have : condCount s t = (condCount (s \u2229 u) t * condCount (s \u2229 u \u222a s \u2229 u\u1d9c) (s \u2229 u) +\n condCount (s \u2229 u\u1d9c) t * condCount (s \u2229 u \u222a s \u2229 u\u1d9c) (s \u2229 u\u1d9c)) := by\n rw [condCount_disjoint_union (hs.inter_of_left _) (hs.inter_of_left _)\n (disjoint_compl_right.mono inf_le_right inf_le_right), Set.inter_union_compl]", "informal": "We're rewriting part of the expression using :." }, { "formal": "rw [this]", "informal": "We're rewriting part of the expression using [this]." }, { "formal": "simp [condCount_inter_self hs]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [condCount_disjoint_union (hs.inter_of_left _) (hs.inter_of_left _)\n (disjoint_compl_right.mono inf_le_right inf_le_right), Set.inter_union_compl]", "informal": "We're rewriting part of the expression using [condCount_disjoint_union." }, { "formal": "simp only [le_antisymm_iff, h.iterate_pos_le_iff_map_le hf hg hn,\n h.symm.iterate_pos_le_iff_map_le' hg hf hn]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "suffices \u2045(\u22a5 : LieIdeal R L), N\u2046 \u2264 \u22a5 by exact le_bot_iff.mp this", "informal": "Here, we provide the exact term \u2045(\u22a5 that solves our current goal." }, { "formal": "rw [lieIdeal_oper_eq_span, lieSpan_le]", "informal": "We're rewriting part of the expression using [lieIdeal_oper_eq_span,." }, { "formal": "rintro m \u27e8\u27e8x, hx\u27e9, n, hn\u27e9", "informal": "We introduce new variables m." }, { "formal": "rw [\u2190 hn]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [mem_bot] at hx", "informal": "We're rewriting part of the expression using [mem_bot]." }, { "formal": "simp [hx]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact le_bot_iff.mp this", "informal": "Here, we provide the exact term le_bot_iff.mp that solves our current goal." }, { "formal": "rw [associated_toQuadraticForm, h.eq x y, \u2190 two_mul, \u2190 mul_assoc, invOf_mul_self,\n one_mul]", "informal": "We're rewriting part of the expression using [associated_toQuadraticForm,." }, { "formal": "simp [ndinter, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [mul_comm, prod_range_succ_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases lt_trichotomy b 0 with (hb | rfl | hb)", "informal": "We're breaking down the problem into cases based on lt_trichotomy." }, { "formal": "simp [hb, hb.not_lt, one_le_div_of_neg]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [lt_irrefl, zero_lt_one.not_le, zero_lt_one]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp [lt_irrefl, zero_lt_one.not_le, zero_lt_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hb, hb.not_lt, one_le_div]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [vecMulVec_apply, Pi.smul_apply, smul_eq_mul]", "informal": "We're rewriting part of the expression using [vecMulVec_apply,." }, { "formal": "suffices (q.num : \u211a) < q.num + (1 - fract q) * q.den by\n have : (q - fract q + 1) * q.den = q.num + (1 - fract q) * q.den := by\n calc\n (q - fract q + 1) * q.den = (q + (1 - fract q)) * q.den := by ring\n _ = q * q.den + (1 - fract q) * q.den := by rw [add_mul]\n _ = q.num + (1 - fract q) * q.den := by simp\n rwa [this]", "informal": "We're rewriting part of the expression using (q.num." }, { "formal": "suffices 0 < (1 - fract q) * q.den by\n rw [\u2190 sub_lt_iff_lt_add']\n simpa", "informal": "We're rewriting part of the expression using 0." }, { "formal": "have : 0 < 1 - fract q := by\n have : fract q < 1 := fract_lt_one q\n have : 0 + fract q < 1 := by simp [this]\n rwa [lt_sub_iff_add_lt]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact mul_pos this (by exact_mod_cast q.pos)", "informal": "Here, we provide the exact term mul_pos that solves our current goal." }, { "formal": "have : (q - fract q + 1) * q.den = q.num + (1 - fract q) * q.den := by\n calc\n (q - fract q + 1) * q.den = (q + (1 - fract q)) * q.den := by ring\n _ = q * q.den + (1 - fract q) * q.den := by rw [add_mul]\n _ = q.num + (1 - fract q) * q.den := by simp", "informal": "We're rewriting part of the expression using :." }, { "formal": "calc\n (q - fract q + 1) * q.den = (q + (1 - fract q)) * q.den := by ring\n _ = q * q.den + (1 - fract q) * q.den := by rw [add_mul]\n _ = q.num + (1 - fract q) * q.den := by simp", "informal": "We're rewriting part of the expression using (q." }, { "formal": "rw [add_mul]", "informal": "We're rewriting part of the expression using [add_mul]." }, { "formal": "rw [\u2190 sub_lt_iff_lt_add']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have : 0 + fract q < 1 := by simp [this]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [this]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [image2_singleton_left, image_subset_iff]", "informal": "We're rewriting part of the expression using [image2_singleton_left,." }, { "formal": "simp only [mk_eq_zero_iff, \u2190 mk_pi, isEmpty_pi]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [parallelepiped]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [this, \u2190 image_comp]", "informal": "We're rewriting part of the expression using [this,." }, { "formal": "simp_rw [Equiv.apply_symm_apply] at this", "informal": "We're rewriting part of the expression using [Equiv.apply_symm_apply]." }, { "formal": "simp_rw [Function.comp_apply, mem_image, mem_Icc, Equiv.piCongrLeft'_apply, this]", "informal": "We're rewriting part of the expression using [Function.comp_apply,." }, { "formal": "rw [\u2190 Equiv.preimage_eq_iff_eq_image]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [mem_preimage, mem_Icc, Pi.le_def, Pi.zero_apply, Equiv.piCongrLeft'_apply,\n Pi.one_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [nhdsWithin, nhds_pi, Filter.pi, pi_def, \u2190 iInf_principal_finite hI, comap_inf,\n comap_principal, eval]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [iInf_split _ fun i => i \u2208 I, inf_right_comm]", "informal": "We're rewriting part of the expression using [iInf_split." }, { "formal": "simp only [iInf_inf_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [top_sub_coe, tendsto_nhds_top_iff_nnreal]", "informal": "We're rewriting part of the expression using [top_sub_coe,." }, { "formal": "rw [lt_tsub_iff_left]", "informal": "We're rewriting part of the expression using [lt_tsub_iff_left]." }, { "formal": "rw [sub_top]", "informal": "We're rewriting part of the expression using [sub_top]." }, { "formal": "exact ((gt_mem_nhds <| coe_lt_coe.2 <| lt_add_one a).prod_nhds\n (lt_mem_nhds <| @coe_lt_top (a + 1))).mono fun x hx =>\n tsub_eq_zero_iff_le.2 (hx.1.trans hx.2).le", "informal": "Here, we provide the exact term ((gt_mem_nhds that solves our current goal." }, { "formal": "exact continuous_sub.tendsto (a, b)", "informal": "Here, we provide the exact term continuous_sub.tendsto that solves our current goal." }, { "formal": "cases x <;> rfl", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "simp only [\u2190 measure_biUnion_finset (pairwiseDisjoint_fiber f s) hf,\n Finset.set_biUnion_preimage_singleton]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Int.natAbs_add_nonneg (Int.bit0_nonneg h) (le_of_lt Int.zero_lt_one), Int.natAbs_bit0]", "informal": "We're rewriting part of the expression using [Int.natAbs_add_nonneg." }, { "formal": "simp [Zsqrtd.ext]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases c <;> simp [*]", "informal": "We're breaking down the problem into cases based on c." }, { "formal": "by_cases c <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply propext", "informal": "Here, we apply the theorem/lemma propext." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "simp only [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "exact forall\u2082_refl _", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "exact forall\u2082_refl _", "informal": "Here, we provide the exact term forall\u2082_refl that solves our current goal." }, { "formal": "by_cases hf : Integrable f \u03bc", "informal": "We're breaking down the problem into cases based on hf." }, { "formal": "simp_rw [setToFun_eq _ hf, L1.setToL1_add_left' hT hT' hT'' h_add]", "informal": "We're rewriting part of the expression using [setToFun_eq." }, { "formal": "simp_rw [setToFun_undef _ hf, add_zero]", "informal": "We're rewriting part of the expression using [setToFun_undef." }, { "formal": "simp [toAdjoin]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [deriv_circleMap]", "informal": "We're rewriting part of the expression using [deriv_circleMap]." }, { "formal": "apply continuous_circleMap_inv hw", "informal": "Here, we apply the theorem/lemma continuous_circleMap_inv." }, { "formal": "apply ContinuousOn.comp_continuous hf (continuous_circleMap z R)", "informal": "Here, we apply the theorem/lemma ContinuousOn.comp_continuous." }, { "formal": "exact fun _ => (circleMap_mem_sphere _ hR.le) _", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [\u2190 Algebra.adjoin_range_eq_range_aeval, Subtype.range_coe]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact CommRingCat.of (A \u2297[R] B)", "informal": "Here, we provide the exact term CommRingCat.of that solves our current goal." }, { "formal": "simp only [scanl, eq_self_iff_true, singleton_append, and_self_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [add_lie, add_lie]", "informal": "We're rewriting part of the expression using [add_lie,." }, { "formal": "iterate 15 rw [lie_add]", "informal": "We're rewriting part of the expression using 15." }, { "formal": "rw [lie_add]", "informal": "We're rewriting part of the expression using [lie_add]." }, { "formal": "match e : zoom (cmp v) t with\n| (nil, p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_nil ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; cases h <;> simp [*]\n| (node .., p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_node ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; rcases h with h|h|h <;> simp [*]\n exact .inr (Path.zoom_zoomed\u2081 e)", "informal": "We're breaking down the problem into cases based on e." }, { "formal": "match e : zoom (cmp v) t with\n| (nil, p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_nil ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; cases h <;> simp [*]\n| (node .., p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_node ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; rcases h with h|h|h <;> simp [*]\n exact .inr (Path.zoom_zoomed\u2081 e)", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "match e : zoom (cmp v) t with\n| (nil, p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_nil ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; cases h <;> simp [*]\n| (node .., p) =>\n let \u27e8_, _, h\u2081, h\u2082\u27e9 := exists_insert_toList_zoom_node ht e\n simp [\u2190 mem_toList, h\u2081] at h\n simp [\u2190 mem_toList, h\u2082]; rcases h with h|h|h <;> simp [*]\n exact .inr (Path.zoom_zoomed\u2081 e)", "informal": "Here, we provide the exact term e that solves our current goal." }, { "formal": "simp [\u2190 mem_toList, h\u2081] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [\u2190 mem_toList, h\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases h <;> simp [*]", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "cases h <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [\u2190 mem_toList, h\u2081] at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [\u2190 mem_toList, h\u2082]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases h with h|h|h <;> simp [*]", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "rcases h with h|h|h <;> simp [*]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact .inr (Path.zoom_zoomed\u2081 e)", "informal": "Here, we provide the exact term .inr that solves our current goal." }, { "formal": "by_cases ha : IsMin a", "informal": "We're breaking down the problem into cases based on ha." }, { "formal": "rw [ha.pred_eq, or_iff_right_of_imp ge_of_eq]", "informal": "We're rewriting part of the expression using [ha.pred_eq,." }, { "formal": "rw [\u2190 pred_lt_iff_of_not_isMin ha, le_iff_eq_or_lt, eq_comm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [linearIndependent_iff]", "informal": "We're rewriting part of the expression using [linearIndependent_iff]." }, { "formal": "simp only [Finsupp.total_apply, aeval_endomorphism, forall_iff_forall_finsupp, Sum, support,\n coeff, ofFinsupp_eq_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Iff.rfl", "informal": "Here, we provide the exact term Iff.rfl that solves our current goal." }, { "formal": "fapply Prefunctor.ext", "informal": "Here, we apply the theorem/lemma Prefunctor.ext." }, { "formal": "rintro X", "informal": "We introduce new variables X." }, { "formal": "rintro X Y f", "informal": "We introduce new variables X." }, { "formal": "rcases \u03c6 with \u27e8\u03c6o, \u03c6m\u27e9", "informal": "We're breaking down the problem into cases based on \u03c6." }, { "formal": "dsimp [lift, Quiver.Hom.toPath]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Category.id_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [ofDigits_append, ofDigits_digits, ofDigits_digits]", "informal": "We're rewriting part of the expression using [ofDigits_append,." }, { "formal": "rintro (_ | \u27e8_, _, _, _, rfl, hp\u27e9)", "informal": "We introduce new variables (_." }, { "formal": "cases mk_inj h", "informal": "We're breaking down the problem into cases based on mk_inj." }, { "formal": "exact hp", "informal": "Here, we provide the exact term hp that solves our current goal." }, { "formal": "rw [lf_iff_exists_le]", "informal": "We're rewriting part of the expression using [lf_iff_exists_le]." }, { "formal": "conv =>\n lhs\n simp only [le_iff_forall_lf]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases hf_zero : \u222b\u207b a, f a ^ p \u2202\u03bc = 0", "informal": "We're breaking down the problem into cases based on hf_zero." }, { "formal": "by_cases hg_zero : \u222b\u207b a, g a ^ q \u2202\u03bc = 0", "informal": "We're breaking down the problem into cases based on hg_zero." }, { "formal": "by_cases hf_top : \u222b\u207b a, f a ^ p \u2202\u03bc = \u22a4", "informal": "We're breaking down the problem into cases based on hf_top." }, { "formal": "by_cases hg_top : \u222b\u207b a, g a ^ q \u2202\u03bc = \u22a4", "informal": "We're breaking down the problem into cases based on hg_top." }, { "formal": "exact ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_ne_top hpq hf hf_top hg_top hf_zero hg_zero", "informal": "Here, we provide the exact term ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_ne_top that solves our current goal." }, { "formal": "exact lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero hpq.nonneg hf hf_zero", "informal": "Here, we provide the exact term lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero that solves our current goal." }, { "formal": "rw [mul_comm]", "informal": "We're rewriting part of the expression using [mul_comm]." }, { "formal": "exact lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero hpq.symm.nonneg hg hg_zero", "informal": "Here, we provide the exact term lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero that solves our current goal." }, { "formal": "exact lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top hpq.pos hpq.symm.nonneg hf_top hg_zero", "informal": "Here, we provide the exact term lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top that solves our current goal." }, { "formal": "rw [mul_comm, mul_comm ((\u222b\u207b a : \u03b1, f a ^ p \u2202\u03bc) ^ (1 / p))]", "informal": "We're rewriting part of the expression using [mul_comm,." }, { "formal": "exact lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top hpq.symm.pos hpq.nonneg hg_top hf_zero", "informal": "Here, we provide the exact term lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top that solves our current goal." }, { "formal": "rw [mem_normalizer_iff']", "informal": "We're rewriting part of the expression using [mem_normalizer_iff']." }, { "formal": "rw [\u2190 lie_skew, neg_mem_iff (G := L)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sign, sign_nonneg_iff]", "informal": "We're rewriting part of the expression using [sign,." }, { "formal": "exact sin_nonneg_of_nonneg_of_le_pi h0 hpi", "informal": "Here, we provide the exact term sin_nonneg_of_nonneg_of_le_pi that solves our current goal." }, { "formal": "simp only [lt_def, mem_singleton, \u2190 and_assoc, exists_eq_right]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro t x hx", "informal": "We introduce new variables t." }, { "formal": "rw [\u2190 not_le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rcases lt_or_eq_of_le h with (h\u2081 | rfl)", "informal": "We're breaking down the problem into cases based on lt_or_eq_of_le." }, { "formal": "exact ne_of_irrefl h\u2081 ((t.1 h\u2081).1 hx).symm", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "exact ne_of_irrefl h\u2081 ((t.1 h\u2081).1 hx).symm", "informal": "Here, we provide the exact term ne_of_irrefl that solves our current goal." }, { "formal": "exact t.2 hx", "informal": "Here, we provide the exact term t.2 that solves our current goal." }, { "formal": "exact fun h =>\n \u27e8fun {z} hz => \u27e8fun i => (asymm hz (h _ i)).elim, fun i => (hz.ne' i).elim\u27e9,\n by simpa using h r\u27e9", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [dart_edge_eq_mk'_iff'] at he", "informal": "We're rewriting part of the expression using [dart_edge_eq_mk'_iff']." }, { "formal": "rcases he with (\u27e8rfl, rfl\u27e9 | \u27e8rfl, rfl\u27e9)", "informal": "We're breaking down the problem into cases based on he." }, { "formal": "exact dart_fst_mem_support_of_mem_darts _ hd", "informal": "Here, we provide the exact term dart_fst_mem_support_of_mem_darts that solves our current goal." }, { "formal": "exact dart_snd_mem_support_of_mem_darts _ hd", "informal": "Here, we provide the exact term dart_snd_mem_support_of_mem_darts that solves our current goal." }, { "formal": "apply DFinsupp.induction x H_zero", "informal": "Here, we apply the theorem/lemma DFinsupp.induction." }, { "formal": "intro i b f h1 h2 ih", "informal": "We introduce new variables i." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact he b hb", "informal": "Here, we provide the exact term he that solves our current goal." }, { "formal": "simp only [reverse_cons]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact rel_append (rel_reverse h\u2082) (Forall\u2082.cons h\u2081 Forall\u2082.nil)", "informal": "Here, we provide the exact term rel_append that solves our current goal." }, { "formal": "rw [evariance, evariance, \u2190 lintegral_const_mul' _ _ ENNReal.ofReal_lt_top.ne]", "informal": "We're rewriting part of the expression using [evariance,." }, { "formal": "rw [ENNReal.ofReal, \u2190 ENNReal.coe_pow, \u2190 ENNReal.coe_pow, \u2190 ENNReal.coe_mul]", "informal": "We're rewriting part of the expression using [ENNReal.ofReal,." }, { "formal": "rw [\u2190 sq_abs, \u2190 Real.rpow_two, Real.toNNReal_rpow_of_nonneg (abs_nonneg _), NNReal.rpow_two,\n \u2190 mul_pow, Real.toNNReal_mul_nnnorm _ (abs_nonneg _)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "conv_rhs => rw [\u2190 nnnorm_norm, norm_mul, norm_abs_eq_norm, \u2190 norm_mul, nnnorm_norm, mul_sub]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [mul_comm]", "informal": "We're rewriting part of the expression using [mul_comm]." }, { "formal": "simp_rw [\u2190 smul_eq_mul, \u2190 integral_smul_const, smul_eq_mul, mul_comm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [hf] at h", "informal": "We're rewriting part of the expression using [hf]." }, { "formal": "simp at h", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "simp only [mem_support_iff, mul_apply, sum_single_index, zero_mul, ite_self, sum_zero,\n Classical.not_not]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact\n Finset.sum_eq_zero\n (by\n simp (config := { contextual := true }) only [this, sum_single_index, ite_eq_right_iff,\n eq_self_iff_true, imp_true_iff, zero_mul])", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp (config := { contextual := true }) only [this, sum_single_index, ite_eq_right_iff,\n eq_self_iff_true, imp_true_iff, zero_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 lim_const (abv := Complex.abs) (\u2211 m in range n, _), exp, sub_eq_add_neg,\n \u2190 lim_neg, lim_add, \u2190 lim_abs]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp_rw [\u2190 sub_eq_add_neg]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sum_range_sub_sum_range hj]", "informal": "We're rewriting part of the expression using [sum_range_sub_sum_range." }, { "formal": "rw [mem_filter, mem_range] at hm", "informal": "We're rewriting part of the expression using [mem_filter,." }, { "formal": "rw [\u2190 mul_div_assoc, \u2190 pow_add, add_tsub_cancel_of_le hm.2]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp_rw [map_mul, map_pow, map_div\u2080, abs_cast_nat]", "informal": "We're rewriting part of the expression using [map_mul,." }, { "formal": "rw [abv_pow abs]", "informal": "We're rewriting part of the expression using [abv_pow." }, { "formal": "exact pow_le_one _ (abs.nonneg _) hx", "informal": "Here, we provide the exact term pow_le_one that solves our current goal." }, { "formal": "simp [abs_mul, abv_pow abs, abs_div, mul_sum.symm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact sum_div_factorial_le _ _ hn", "informal": "Here, we provide the exact term sum_div_factorial_le that solves our current goal." }, { "formal": "simp only [forall_eq_or_imp, iUnion_iUnion_eq_or_left, Finset.mem_insert]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [restrict_union_congr, \u2190 hs]", "informal": "We're rewriting part of the expression using [restrict_union_congr,." }, { "formal": "dsimp only at hp", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have C : Tendsto (fun p : \u211d \u00d7 \u211d => p.1 ^ p.2) (\ud835\udcdd[{0}] 0 \u00d7\u02e2 \ud835\udcdd y) (pure 0) := by\n rw [nhdsWithin_singleton, tendsto_pure, pure_prod, eventually_map]\n exact (lt_mem_nhds hp).mono fun y hy => zero_rpow hy.ne'", "informal": "We're rewriting part of the expression using C." }, { "formal": "have C : Tendsto (fun p : \u211d \u00d7 \u211d => p.1 ^ p.2) (\ud835\udcdd[{0}] 0 \u00d7\u02e2 \ud835\udcdd y) (pure 0) := by\n rw [nhdsWithin_singleton, tendsto_pure, pure_prod, eventually_map]\n exact (lt_mem_nhds hp).mono fun y hy => zero_rpow hy.ne'", "informal": "Here, we provide the exact term C that solves our current goal." }, { "formal": "exact continuousAt_rpow_of_ne (x, y) hx", "informal": "Here, we provide the exact term continuousAt_rpow_of_ne that solves our current goal." }, { "formal": "rw [nhdsWithin_singleton, tendsto_pure, pure_prod, eventually_map]", "informal": "We're rewriting part of the expression using [nhdsWithin_singleton,." }, { "formal": "exact (lt_mem_nhds hp).mono fun y hy => zero_rpow hy.ne'", "informal": "Here, we provide the exact term (lt_mem_nhds that solves our current goal." }, { "formal": "case refl => exact refl", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "case refl => exact refl", "informal": "Here, we provide the exact term refl that solves our current goal." }, { "formal": "case tail b c _ hbc ih =>\nrefine @ih (\u03bb {a : \u03b1} (hab : ReflTransGen r a b) => P a (ReflTransGen.tail hab hbc)) ?_ ?_\n{ exact head hbc _ refl }\n{ exact fun h1 h2 \u21a6 head h1 (h2.tail hbc) }", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "case tail b c _ hbc ih =>\nrefine @ih (\u03bb {a : \u03b1} (hab : ReflTransGen r a b) => P a (ReflTransGen.tail hab hbc)) ?_ ?_\n{ exact head hbc _ refl }\n{ exact fun h1 h2 \u21a6 head h1 (h2.tail hbc) }", "informal": "Here, we provide the exact term tail that solves our current goal." }, { "formal": "exact refl", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "exact refl", "informal": "Here, we provide the exact term refl that solves our current goal." }, { "formal": "{ exact head hbc _ refl }", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "{ exact head hbc _ refl }", "informal": "Here, we provide the exact term exact that solves our current goal." }, { "formal": "{ exact fun h1 h2 \u21a6 head h1 (h2.tail hbc) }", "informal": "Here, we provide the exact term exact that solves our current goal." }, { "formal": "simp_rw [Function.onFun, Set.disjoint_iff]", "informal": "We're rewriting part of the expression using [Function.onFun,." }, { "formal": "intro m n hmn x hx", "informal": "We introduce new variables m." }, { "formal": "apply hmn", "informal": "Here, we apply the theorem/lemma hmn." }, { "formal": "rw [mul_lt_mul_iff_left, zpow_lt_zpow_iff hb, Int.lt_add_one_iff] at i1 i2", "informal": "We're rewriting part of the expression using [mul_lt_mul_iff_left,." }, { "formal": "exact le_antisymm i1 i2", "informal": "Here, we provide the exact term le_antisymm that solves our current goal." }, { "formal": "rw [uniformContinuous_pi]", "informal": "We're rewriting part of the expression using [uniformContinuous_pi]." }, { "formal": "intro i", "informal": "We introduce new variables i." }, { "formal": "rw [NormedAddCommGroup.uniformity_basis_dist.uniformContinuous_iff\n NormedAddCommGroup.uniformity_basis_dist]", "informal": "We're rewriting part of the expression using [NormedAddCommGroup.uniformity_basis_dist.uniformContinuous_iff." }, { "formal": "intro \u03b5 h\u03b5", "informal": "We introduce new variables \u03b5." }, { "formal": "rintro f g (hfg : \u2016f - g\u2016 < \u03b5)", "informal": "We introduce new variables f." }, { "formal": "exact this.trans_lt hfg", "informal": "Here, we provide the exact term this.trans_lt that solves our current goal." }, { "formal": "induction i <;>\n simp [*, Nat.unaryCast, ghostFun_zero, ghostFun_one, ghostFun_add, -Pi.coe_nat]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [div_eq_mul_inv]", "informal": "We're rewriting part of the expression using [div_eq_mul_inv]." }, { "formal": "exact hf.mul hg.inv", "informal": "Here, we provide the exact term hf.mul that solves our current goal." }, { "formal": "apply eq", "informal": "Here, we apply the theorem/lemma eq." }, { "formal": "simp only [gcd_coe]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Nat.gcd_comm", "informal": "Here, we apply the theorem/lemma Nat.gcd_comm." }, { "formal": "simp [transvection, Matrix.add_mul, ha]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [sub_eq_add_neg, \u2190 map_neg C r, leadingCoeff_X_add_C]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg,." }, { "formal": "rw [\u2190 abs_lt, \u2190 sq_abs, lt_sqrt (abs_nonneg _)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "by_cases kn : n < k", "informal": "We're breaking down the problem into cases based on kn." }, { "formal": "simp [List.get?_range kn]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [List.get?_len_le]", "informal": "We're rewriting part of the expression using [List.get?_len_le]." }, { "formal": "cases e : evaln k c n", "informal": "We're breaking down the problem into cases based on e." }, { "formal": "exact kn.elim (evaln_bound e)", "informal": "Here, we provide the exact term kn.elim that solves our current goal." }, { "formal": "rw [image_subset_iff, e.image_eq_preimage]", "informal": "We're rewriting part of the expression using [image_subset_iff,." }, { "formal": "simp [countP_filter]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [C_mul', Derivation.map_smul, C_mul']", "informal": "We're rewriting part of the expression using [C_mul',." }, { "formal": "rw [le_nhds_iff]", "informal": "We're rewriting part of the expression using [le_nhds_iff]." }, { "formal": "exact \u27e8fun H s hs has => H _ has hs, fun H s has hs => H _ hs has\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "exact \u27e8h.1, inferInstance\u27e9", "informal": "Here, we provide the exact term \u27e8h.1, that solves our current goal." }, { "formal": "rintro \u27e8h\u2081, h\u2082\u27e9", "informal": "We introduce new variables \u27e8h\u2081,." }, { "formal": "exact IsOpenImmersion.of_stalk_iso f h\u2081", "informal": "Here, we provide the exact term IsOpenImmersion.of_stalk_iso that solves our current goal." }, { "formal": "cases x <;> simp", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "rcases hs.elim_nhds_subcover U fun x _ => hxU x with \u27e8t, -, hsU\u27e9", "informal": "We're breaking down the problem into cases based on hs.elim_nhds_subcover." }, { "formal": "rintro i \u27e8x, hx\u27e9", "informal": "We introduce new variables i." }, { "formal": "rcases mem_iUnion\u2082.1 (hsU hx.2) with \u27e8c, hct, hcx\u27e9", "informal": "We're breaking down the problem into cases based on mem_iUnion\u2082.1." }, { "formal": "exact mem_biUnion hct \u27e8x, hx.1, hcx\u27e9", "informal": "Here, we provide the exact term mem_biUnion that solves our current goal." }, { "formal": "dsimp only [map']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [ModuleCat.id_apply]", "informal": "We're rewriting part of the expression using [ModuleCat.id_apply]." }, { "formal": "rw [map_zero]", "informal": "We're rewriting part of the expression using [map_zero]." }, { "formal": "erw [@LinearMap.baseChange_tmul R S M M _ _ (_), ModuleCat.id_apply]", "informal": "We're rewriting part of the expression using [@LinearMap.baseChange_tmul." }, { "formal": "rw [map_add, ihx, ihy]", "informal": "We're rewriting part of the expression using [map_add,." }, { "formal": "simp_rw [closure_union, closure_eq]", "informal": "We're rewriting part of the expression using [closure_union,." }, { "formal": "simp [\u2190 T.map_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [sInf_eq_iInf', iInf_uniformity]", "informal": "We're rewriting part of the expression using [sInf_eq_iInf',." }, { "formal": "exact tendsto_iInf' \u27e8u, h\u2081\u27e9 hf", "informal": "Here, we provide the exact term tendsto_iInf' that solves our current goal." }, { "formal": "rw [\u2190 add_assoc, h, h.periodic.int_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [hu]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [hu]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hitting, if_pos h']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [if_pos]", "informal": "We're rewriting part of the expression using [if_pos]." }, { "formal": "exact \u27e8j, \u27e8hj\u2081.1, hj\u2081.2.trans h\u27e9, hj\u2082\u27e9", "informal": "Here, we provide the exact term \u27e8j, that solves our current goal." }, { "formal": "by_cases hi' : i \u2264 m\u2081", "informal": "We're breaking down the problem into cases based on hi'." }, { "formal": "exact csInf_le bddBelow_Icc.inter_of_left \u27e8\u27e8hi.1.1, hi'\u27e9, hi.2\u27e9", "informal": "Here, we provide the exact term csInf_le that solves our current goal." }, { "formal": "exact ((csInf_le bddBelow_Icc.inter_of_left \u27e8hj\u2081, hj\u2082\u27e9).trans (hj\u2081.2.trans le_rfl)).trans\n (le_of_lt (not_le.1 hi'))", "informal": "Here, we provide the exact term ((csInf_le that solves our current goal." }, { "formal": "simp [@forall_swap _ \u03b9']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [range_comp, \u2190 sSup_range]", "informal": "We're rewriting part of the expression using [range_comp,." }, { "formal": "exact gc.isLUB_l_image (isLUB_sSup _)", "informal": "Here, we provide the exact term gc.isLUB_l_image that solves our current goal." }, { "formal": "rw [dimH_ball_pi x hr, Fintype.card_fin]", "informal": "We're rewriting part of the expression using [dimH_ball_pi." }, { "formal": "simp [numElems]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Nat.div_eq_of_lt", "informal": "Here, we apply the theorem/lemma Nat.div_eq_of_lt." }, { "formal": "simp [Nat.sub_eq_zero_of_le h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact Nat.pred_lt \u2039_\u203a", "informal": "Here, we provide the exact term Nat.pred_lt that solves our current goal." }, { "formal": "rcases eq_or_lt_of_le hs with (rfl | hs)", "informal": "We're breaking down the problem into cases based on eq_or_lt_of_le." }, { "formal": "rw [rpow_def_of_pos hs1, \u2190 exp_log hs2]", "informal": "We're rewriting part of the expression using [rpow_def_of_pos." }, { "formal": "apply exp_strictMono", "informal": "Here, we apply the theorem/lemma exp_strictMono." }, { "formal": "exact hs2.trans_lt (rpow_pos_of_pos hs1 _)", "informal": "Here, we provide the exact term hs2.trans_lt that solves our current goal." }, { "formal": "rw [\u2190 div_lt_iff hp, \u2190 div_lt_div_right_of_neg hs']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 div_lt_iff hp, \u2190 div_lt_div_right hs']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [mem_iff, not_iff_not, Algebra.algebraMap_eq_smul_one, smul_assoc, \u2190 smul_sub,\n isUnit_smul_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [sInter, classToCong_empty, Set.sInter_empty, univ]", "informal": "We're rewriting part of the expression using [sInter,." }, { "formal": "simp only [\u2190 hasLineDerivWithinAt_univ] at h \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact HasLineDerivWithinAt.smul h c", "informal": "Here, we provide the exact term HasLineDerivWithinAt.smul that solves our current goal." }, { "formal": "apply Fintype.card_congr", "informal": "Here, we apply the theorem/lemma Fintype.card_congr." }, { "formal": "exact ((skeletalFunctor \u22d9 forget NonemptyFinLinOrd).mapIso I).toEquiv", "informal": "Here, we provide the exact term ((skeletalFunctor that solves our current goal." }, { "formal": "rw [pow_succ', pow_succ', Nat.succ_mul]", "informal": "We're rewriting part of the expression using [pow_succ',." }, { "formal": "by_cases hp1 : p.leadingCoeff ^ i = 0", "informal": "We're breaking down the problem into cases based on hp1." }, { "formal": "rw [hp1, zero_mul]", "informal": "We're rewriting part of the expression using [hp1,." }, { "formal": "by_cases hp2 : p ^ i = 0", "informal": "We're breaking down the problem into cases based on hp2." }, { "formal": "rw [hp2, zero_mul, coeff_zero]", "informal": "We're rewriting part of the expression using [hp2,." }, { "formal": "apply coeff_eq_zero_of_natDegree_lt", "informal": "Here, we apply the theorem/lemma coeff_eq_zero_of_natDegree_lt." }, { "formal": "have h1 : (p ^ i).natDegree < i * p.natDegree := by\n refine lt_of_le_of_ne natDegree_pow_le fun h => hp2 ?_\n rw [\u2190 h, hp1] at hi\n exact leadingCoeff_eq_zero.mp hi", "informal": "We're rewriting part of the expression using h1." }, { "formal": "have h1 : (p ^ i).natDegree < i * p.natDegree := by\n refine lt_of_le_of_ne natDegree_pow_le fun h => hp2 ?_\n rw [\u2190 h, hp1] at hi\n exact leadingCoeff_eq_zero.mp hi", "informal": "Here, we provide the exact term h1 that solves our current goal." }, { "formal": "rw [\u2190 h, hp1] at hi", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact leadingCoeff_eq_zero.mp hi", "informal": "Here, we provide the exact term leadingCoeff_eq_zero.mp that solves our current goal." }, { "formal": "rw [\u2190 natDegree_pow' hp1, \u2190 leadingCoeff_pow' hp1]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact coeff_mul_degree_add_degree _ _", "informal": "Here, we provide the exact term coeff_mul_degree_add_degree that solves our current goal." }, { "formal": "rw [X_pow_eq_monomial, toFinsupp_monomial]", "informal": "We're rewriting part of the expression using [X_pow_eq_monomial,." }, { "formal": "by_cases h_int : Integrable X \u03bc", "informal": "We're breaking down the problem into cases based on h_int." }, { "formal": "rw [centralMoment_one' h_int]", "informal": "We're rewriting part of the expression using [centralMoment_one'." }, { "formal": "simp only [measure_univ, ENNReal.one_toReal, sub_self, zero_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [centralMoment, Pi.sub_apply, pow_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have : \u00acIntegrable (fun x => X x - integral \u03bc X) \u03bc := by\n refine' fun h_sub => h_int _\n have h_add : X = (fun x => X x - integral \u03bc X) + fun _ => integral \u03bc X := by ext1 x; simp\n rw [h_add]\n exact h_sub.add (integrable_const _)", "informal": "We're rewriting part of the expression using :." }, { "formal": "have : \u00acIntegrable (fun x => X x - integral \u03bc X) \u03bc := by\n refine' fun h_sub => h_int _\n have h_add : X = (fun x => X x - integral \u03bc X) + fun _ => integral \u03bc X := by ext1 x; simp\n rw [h_add]\n exact h_sub.add (integrable_const _)", "informal": "Here, we provide the exact term : that solves our current goal." }, { "formal": "rw [integral_undef this]", "informal": "We're rewriting part of the expression using [integral_undef." }, { "formal": "rw [h_add]", "informal": "We're rewriting part of the expression using [h_add]." }, { "formal": "exact h_sub.add (integrable_const _)", "informal": "Here, we provide the exact term h_sub.add that solves our current goal." }, { "formal": "rw [disjoint_iff, \u2190 map_inf, h.eq_bot, map_bot]", "informal": "We're rewriting part of the expression using [disjoint_iff,." }, { "formal": "simp only [zpow_one, Int.ofNat_zero, Int.ofNat_succ, zpow_eq_pow, zero_add]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [equicontinuousAt_iff_continuousAt, ContinuousAt,\n hX.tendsto_iff (UniformFun.hasBasis_nhds \u03b9 \u03b1 _)]", "informal": "We're rewriting part of the expression using [equicontinuousAt_iff_continuousAt,." }, { "formal": "simp only [Function.comp_apply, mem_setOf_eq, exists_prop]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Presheaf.isSheaf_iff_multifork]", "informal": "We're rewriting part of the expression using [Presheaf.isSheaf_iff_multifork]." }, { "formal": "intro X S", "informal": "We introduce new variables X." }, { "formal": "exact \u27e8isLimitMultiforkOfIsLimit _ _ hE _ _\u27e9", "informal": "Here, we provide the exact term \u27e8isLimitMultiforkOfIsLimit that solves our current goal." }, { "formal": "constructor <;> intro h", "informal": "We introduce new variables <;>." }, { "formal": "exact isNoetherian_of_linearEquiv (LinearEquiv.ofTop (\u22a4 : Submodule R M) rfl)", "informal": "Here, we provide the exact term isNoetherian_of_linearEquiv that solves our current goal." }, { "formal": "exact isNoetherian_of_linearEquiv (LinearEquiv.ofTop (\u22a4 : Submodule R M) rfl).symm", "informal": "Here, we provide the exact term isNoetherian_of_linearEquiv that solves our current goal." }, { "formal": "rcases leastOfBdd b Hb Hinh with \u27e8n, hn, h2n\u27e9", "informal": "We're breaking down the problem into cases based on leastOfBdd." }, { "formal": "rcases leastOfBdd b' Hb' Hinh with \u27e8n', hn', h2n'\u27e9", "informal": "We're breaking down the problem into cases based on leastOfBdd." }, { "formal": "exact le_antisymm (h2n _ hn') (h2n' _ hn)", "informal": "Here, we provide the exact term le_antisymm that solves our current goal." }, { "formal": "rw [\u2190 hiis]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact t.2", "informal": "Here, we provide the exact term t.2 that solves our current goal." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "rw [sup_eq_closure] at h", "informal": "We're rewriting part of the expression using [sup_eq_closure]." }, { "formal": "rintro y (h | h)", "informal": "We introduce new variables y." }, { "formal": "exact \u27e8y, h, 1, t.one_mem, by simp\u27e9", "informal": "Here, we provide the exact term \u27e8y, that solves our current goal." }, { "formal": "exact \u27e81, s.one_mem, y, h, by simp\u27e9", "informal": "Here, we provide the exact term \u27e81, that solves our current goal." }, { "formal": "exact \u27e81, s.one_mem, 1, \u27e8t.one_mem, mul_one 1\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e81, that solves our current goal." }, { "formal": "rintro _ _ \u27e8y\u2081, hy\u2081, z\u2081, hz\u2081, rfl\u27e9 \u27e8y\u2082, hy\u2082, z\u2082, hz\u2082, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact \u27e8_, mul_mem hy\u2081 hy\u2082, _, mul_mem hz\u2081 hz\u2082, by simp [mul_assoc, mul_left_comm]\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8_, mul_mem hy\u2081 hy\u2082, _, mul_mem hz\u2081 hz\u2082, by simp [mul_assoc, mul_left_comm]\u27e9", "informal": "Here, we provide the exact term \u27e8_, that solves our current goal." }, { "formal": "simp [mul_assoc, mul_left_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro _ \u27e8y, hy, z, hz, rfl\u27e9", "informal": "We introduce new variables _." }, { "formal": "exact \u27e8_, inv_mem hy, _, inv_mem hz, mul_comm z y \u25b8 (mul_inv_rev z y).symm\u27e9", "informal": "Here, we provide the exact term \u27e8_, that solves our current goal." }, { "formal": "rintro \u27e8y, hy, z, hz, rfl\u27e9", "informal": "We introduce new variables \u27e8y,." }, { "formal": "exact mul_mem_sup hy hz", "informal": "Here, we provide the exact term mul_mem_sup that solves our current goal." }, { "formal": "rw [abs_of_nonpos ha, abs_of_nonpos (hab.trans ha)]", "informal": "We're rewriting part of the expression using [abs_of_nonpos." }, { "formal": "exact neg_le_neg_iff.mpr hab", "informal": "Here, we provide the exact term neg_le_neg_iff.mpr that solves our current goal." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "cases x <;> rfl", "informal": "We're breaking down the problem into cases based on x." }, { "formal": "apply eq_of_forall_dist_le", "informal": "Here, we apply the theorem/lemma eq_of_forall_dist_le." }, { "formal": "intro \u03b5 h\u03b5", "informal": "We introduce new variables \u03b5." }, { "formal": "apply le_trans _ (le_of_lt hn)", "informal": "Here, we apply the theorem/lemma le_trans." }, { "formal": "rw [dist_eq_norm, norm_le_pow_iff_mem_span_pow, \u2190 ker_toZModPow, RingHom.mem_ker,\n RingHom.map_sub, \u2190 RingHom.comp_apply, \u2190 RingHom.comp_apply, lift_spec, hg, sub_self]", "informal": "We're rewriting part of the expression using [dist_eq_norm,." }, { "formal": "induction x <;> simp [rmatch, matchEpsilon, *]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro V fV hV", "informal": "We introduce new variables V." }, { "formal": "simp only [Functor.comp_map, limit.lift_pre, coyoneda_obj_map, ran_obj_map, gluedSection]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [limit.lift_\u03c0]", "informal": "We're rewriting part of the expression using [limit.lift_\u03c0]." }, { "formal": "intro V' fV' hV'", "informal": "We introduce new variables V'." }, { "formal": "convert hx fV' (\ud835\udfd9 _) hV hV' (by rw [Category.id_comp])", "informal": "We're rewriting part of the expression using hx." }, { "formal": "simp only [op_id, FunctorToTypes.map_id_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Category.id_comp]", "informal": "We're rewriting part of the expression using [Category.id_comp]." }, { "formal": "simp [coeff_zero_eq_eval_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8u, hu\u27e9", "informal": "Here, we provide the exact term \u27e8u, that solves our current goal." }, { "formal": "rw [\u2190 Finset.not_nonempty_iff_eq_empty]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [SimpleFunc.mem_range, Set.mem_range] at hy_mem", "informal": "We're rewriting part of the expression using [SimpleFunc.mem_range,." }, { "formal": "rw [isEmpty_iff] at h\u03b1", "informal": "We're rewriting part of the expression using [isEmpty_iff]." }, { "formal": "exact h\u03b1 x", "informal": "Here, we provide the exact term h\u03b1 that solves our current goal." }, { "formal": "rw [\u2190 Nat.mul_div_cancel' hda, \u2190 Nat.mul_div_cancel' hdb, h]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rintro rfl", "informal": "We introduce new variables rfl." }, { "formal": "rw [val_nat_cast, Nat.mod_add_div]", "informal": "We're rewriting part of the expression using [val_nat_cast,." }, { "formal": "rintro \u27e8k, rfl\u27e9", "informal": "We introduce new variables \u27e8k,." }, { "formal": "rw [Nat.cast_add, nat_cast_zmod_val, Nat.cast_mul, nat_cast_self, zero_mul,\n add_zero]", "informal": "We're rewriting part of the expression using [Nat.cast_add,." }, { "formal": "rw [natDegree_le_iff_degree_le, degree_le_iff_coeff_zero]", "informal": "We're rewriting part of the expression using [natDegree_le_iff_degree_le,." }, { "formal": "intro n hn", "informal": "We introduce new variables n." }, { "formal": "rw [Nat.cast_lt] at hn", "informal": "We're rewriting part of the expression using [Nat.cast_lt]." }, { "formal": "rw [coeff_reverse, revAt, Function.Embedding.coeFn_mk, if_neg (not_le_of_gt hn),\n coeff_eq_zero_of_natDegree_lt hn]", "informal": "We're rewriting part of the expression using [coeff_reverse,." }, { "formal": "by_cases h : \u2200 w \u2208 Ioo x y, deriv f w \u2260 0", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "apply StrictMonoOn.exists_slope_lt_deriv_aux hf hxy hf'_mono h", "informal": "Here, we apply the theorem/lemma StrictMonoOn.exists_slope_lt_deriv_aux." }, { "formal": "rcases h with \u27e8w, \u27e8hxw, hwy\u27e9, hw\u27e9", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "simp only [div_lt_iff, hxy, hxw, hwy, sub_pos] at ha hb \u22a2", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply StrictMonoOn.exists_slope_lt_deriv_aux _ hxw _ _", "informal": "Here, we apply the theorem/lemma StrictMonoOn.exists_slope_lt_deriv_aux." }, { "formal": "exact hf.mono (Icc_subset_Icc le_rfl hwy.le)", "informal": "Here, we provide the exact term hf.mono that solves our current goal." }, { "formal": "exact hf'_mono.mono (Ioo_subset_Ioo le_rfl hwy.le)", "informal": "Here, we provide the exact term hf'_mono.mono that solves our current goal." }, { "formal": "intro z hz", "informal": "We introduce new variables z." }, { "formal": "rw [\u2190 hw]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply ne_of_lt", "informal": "Here, we apply the theorem/lemma ne_of_lt." }, { "formal": "exact hf'_mono \u27e8hz.1, hz.2.trans hwy\u27e9 \u27e8hxw, hwy\u27e9 hz.2", "informal": "Here, we provide the exact term hf'_mono that solves our current goal." }, { "formal": "apply StrictMonoOn.exists_slope_lt_deriv_aux _ hwy _ _", "informal": "Here, we apply the theorem/lemma StrictMonoOn.exists_slope_lt_deriv_aux." }, { "formal": "exact hf'_mono.mono (Ioo_subset_Ioo hxw.le le_rfl)", "informal": "Here, we provide the exact term hf'_mono.mono that solves our current goal." }, { "formal": "intro z hz", "informal": "We introduce new variables z." }, { "formal": "rw [\u2190 hw]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply ne_of_gt", "informal": "Here, we apply the theorem/lemma ne_of_gt." }, { "formal": "exact hf'_mono \u27e8hxw, hwy\u27e9 \u27e8hxw.trans hz.1, hz.2\u27e9 hz.1", "informal": "Here, we provide the exact term hf'_mono that solves our current goal." }, { "formal": "apply mul_lt_mul _ le_rfl (sub_pos.2 hxw) _", "informal": "Here, we apply the theorem/lemma mul_lt_mul." }, { "formal": "exact hf'_mono \u27e8hxa, haw.trans hwy\u27e9 \u27e8hxw.trans hwb, hby\u27e9 (haw.trans hwb)", "informal": "Here, we provide the exact term hf'_mono that solves our current goal." }, { "formal": "rw [\u2190 hw]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact (hf'_mono \u27e8hxw, hwy\u27e9 \u27e8hxw.trans hwb, hby\u27e9 hwb).le", "informal": "Here, we provide the exact term (hf'_mono that solves our current goal." }, { "formal": "simp [range', Nat.not_lt_zero]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have h (i) : i \u2264 n \u2194 i = 0 \u2228 \u2203 j, i = succ j \u2227 j < n := by cases i <;> simp [Nat.succ_le]", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "have h (i) : i \u2264 n \u2194 i = 0 \u2228 \u2203 j, i = succ j \u2227 j < n := by cases i <;> simp [Nat.succ_le]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [range', mem_range', Nat.lt_succ, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [\u2190 exists_and_right, and_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [exists_comm]", "informal": "We're rewriting part of the expression using [exists_comm]." }, { "formal": "simp [Nat.mul_succ, Nat.add_assoc, Nat.add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases i <;> simp [Nat.succ_le]", "informal": "We're breaking down the problem into cases based on i." }, { "formal": "cases i <;> simp [Nat.succ_le]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Arrow.comp_right, Arrow.id_right] at eq", "informal": "We're rewriting part of the expression using [Arrow.comp_right,." }, { "formal": "erw [Arrow.w_assoc, eq, Category.comp_id]", "informal": "We're rewriting part of the expression using [Arrow.w_assoc,." }, { "formal": "simp only [Finset.centerMass, hw, inv_one, one_smul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [\u2190 not_le, bounded_le_inter_not_le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 image_inv, sInf_image]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact ((OrderIso.inv \u03b1).map_sSup _).symm", "informal": "Here, we provide the exact term ((OrderIso.inv that solves our current goal." }, { "formal": "simp only [toFilteriUnion, toFilterDistortioniUnion, h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have hs : (o.oangle y (y - x)).sign = 1 := by\n rw [oangle_sign_sub_right_swap, h, Real.Angle.sign_coe_pi_div_two]", "informal": "We're rewriting part of the expression using hs." }, { "formal": "rw [o.oangle_eq_angle_of_sign_eq_one hs, Real.Angle.cos_coe,\n InnerProductGeometry.norm_div_cos_angle_sub_of_inner_eq_zero\n (o.inner_rev_eq_zero_of_oangle_eq_pi_div_two h)\n (Or.inl (o.right_ne_zero_of_oangle_eq_pi_div_two h))]", "informal": "We're rewriting part of the expression using [o.oangle_eq_angle_of_sign_eq_one." }, { "formal": "rw [oangle_sign_sub_right_swap, h, Real.Angle.sign_coe_pi_div_two]", "informal": "We're rewriting part of the expression using [oangle_sign_sub_right_swap,." }, { "formal": "rintro _ _ \u27e8u, hu, rfl\u27e9 \u27e8v, hv, rfl\u27e9 \u27e8\u27e8x, hxs\u27e9, -, hxu\u27e9 \u27e8\u27e8y, hys\u27e9, -, hyv\u27e9", "informal": "We introduce new variables _." }, { "formal": "rcases h u v hu hv \u27e8x, hxs, hxu\u27e9 \u27e8y, hys, hyv\u27e9 with \u27e8z, hzs, \u27e8hzu, hzv\u27e9\u27e9", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "exact \u27e8\u27e8z, hzs\u27e9, \u27e8Set.mem_univ _, \u27e8hzu, hzv\u27e9\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8\u27e8z, that solves our current goal." }, { "formal": "rw [Iso.symm_hom, Iso.inv_comp_eq, w]", "informal": "We're rewriting part of the expression using [Iso.symm_hom,." }, { "formal": "rw [dvd_iff]", "informal": "We're rewriting part of the expression using [dvd_iff]." }, { "formal": "repeat' rw [\u2190 coprime_coe]", "informal": "We're rewriting part of the expression using rw." }, { "formal": "apply Nat.Coprime.coprime_dvd_left", "informal": "Here, we apply the theorem/lemma Nat.Coprime.coprime_dvd_left." }, { "formal": "rw [\u2190 coprime_coe]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 norm_abs_eq_norm (a - c), \u2190 norm_abs_eq_norm (b - d)]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [abs_of_nonneg (|a - c| + |b - d|) (add_nonneg (abs_nonneg (a - c)) (abs_nonneg (b - d)))]", "informal": "We're rewriting part of the expression using [abs_of_nonneg." }, { "formal": "rw [sub_add_sub_cancel]", "informal": "We're rewriting part of the expression using [sub_add_sub_cancel]." }, { "formal": "apply add_le_add", "informal": "Here, we apply the theorem/lemma add_le_add." }, { "formal": "exact abs_sup_sub_sup_le_abs _ _ _", "informal": "Here, we provide the exact term abs_sup_sub_sup_le_abs that solves our current goal." }, { "formal": "rw [@sup_comm _ _ c, @sup_comm _ _ c]", "informal": "We're rewriting part of the expression using [@sup_comm." }, { "formal": "exact abs_sup_sub_sup_le_abs _ _ _", "informal": "Here, we provide the exact term abs_sup_sub_sup_le_abs that solves our current goal." }, { "formal": "simp [flag_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [derivFamily_succ, \u2190 succ_le_iff]", "informal": "We're rewriting part of the expression using [derivFamily_succ,." }, { "formal": "apply le_nfpFamily", "informal": "Here, we apply the theorem/lemma le_nfpFamily." }, { "formal": "rw [derivFamily_limit _ l, bsup_le_iff]", "informal": "We're rewriting part of the expression using [derivFamily_limit." }, { "formal": "rw [\u2190 of_add_of_diff hA hB h, add_sub_cancel']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [sub_eq_add_neg]", "informal": "We're rewriting part of the expression using [sub_eq_add_neg]." }, { "formal": "exact v.map_add_le hx (le_trans (le_of_eq (v.map_neg y)) hy)", "informal": "Here, we provide the exact term v.map_add_le that solves our current goal." }, { "formal": "obtain \u27e8n, hn\u27e9 :=\n Algebra.pow_smul_mem_of_smul_subset_of_mem_adjoin (y : S) (s : Set S') (A.map g)\n (by rw [hx\u2081]; exact Set.image_subset _ hA\u2081) hx (Set.mem_image_of_mem _ (hA\u2082 y.2))", "informal": "We're rewriting part of the expression using \u27e8n,." }, { "formal": "obtain \u27e8n, hn\u27e9 :=\n Algebra.pow_smul_mem_of_smul_subset_of_mem_adjoin (y : S) (s : Set S') (A.map g)\n (by rw [hx\u2081]; exact Set.image_subset _ hA\u2081) hx (Set.mem_image_of_mem _ (hA\u2082 y.2))", "informal": "Here, we provide the exact term \u27e8n, that solves our current goal." }, { "formal": "rw [Algebra.smul_def, \u2190 _root_.map_mul] at hx''", "informal": "We're rewriting part of the expression using [Algebra.smul_def,." }, { "formal": "rw [Submonoid.smul_def, smul_eq_mul, Submonoid.coe_mul, SubmonoidClass.coe_pow, mul_assoc, \u2190 ha\u2082,\n mul_comm]", "informal": "We're rewriting part of the expression using [Submonoid.smul_def,." }, { "formal": "rw [hx\u2081]", "informal": "We're rewriting part of the expression using [hx\u2081]." }, { "formal": "exact Set.image_subset _ hA\u2081", "informal": "Here, we provide the exact term Set.image_subset that solves our current goal." }, { "formal": "apply Subsingleton.intro", "informal": "Here, we apply the theorem/lemma Subsingleton.intro." }, { "formal": "intro Q R", "informal": "We introduce new variables Q." }, { "formal": "rw [Sylow.smul_eq_of_normal] at h1 h2", "informal": "We're rewriting part of the expression using [Sylow.smul_eq_of_normal]." }, { "formal": "rw [\u2190 h1, \u2190 h2]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [mem_iUnion]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rintro \u27e8Mfg, \u27e8e\u27e9\u27e9", "informal": "We introduce new variables \u27e8Mfg,." }, { "formal": "rw [\u2190 hs, closure_le]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "rw [Embedding.coe_toHom, DirectLimit.of_apply, @Quotient.mk_eq_iff_out _ (_),\n DirectLimit.equiv_iff G f _ (hi (out x).1 (Finset.mem_image_of_mem _ hx)),\n DirectedSystem.map_self]", "informal": "We're rewriting part of the expression using [Embedding.coe_toHom,." }, { "formal": "rintro \u27e8i, Mfg, \u27e8e\u27e9\u27e9", "informal": "We introduce new variables \u27e8i,." }, { "formal": "exact \u27e8Mfg, \u27e8Embedding.comp (DirectLimit.of L \u03b9 G f i) e\u27e9\u27e9", "informal": "Here, we provide the exact term \u27e8Mfg, that solves our current goal." }, { "formal": "simp [Nat.mod_one]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [ofNat_succ, toNat_append, ih, bits_toNat_decide, mod_pow_succ, Nat.mul_comm]", "informal": "We're rewriting part of the expression using [ofNat_succ,." }, { "formal": "by_cases hfs : IntegrableOn f s \u03bc", "informal": "We're breaking down the problem into cases based on hfs." }, { "formal": "calc\n \u222b x in s, f x \u2202\u03bc = \u2211' g : G, \u222b x in s \u2229 g \u2022 t, f x \u2202\u03bc := ht.set_integral_eq_tsum hfs\n _ = \u2211' g : G, \u222b x in g \u2022 t \u2229 s, f (g\u207b\u00b9 \u2022 x) \u2202\u03bc := by simp only [hf, inter_comm]\n _ = \u222b x in t, f x \u2202\u03bc := (hs.set_integral_eq_tsum' hft).symm", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [hf, inter_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [integral_undef hfs, integral_undef]", "informal": "We're rewriting part of the expression using [integral_undef." }, { "formal": "simp only [divp, neg_mul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [coe_const, Function.const_apply, \u2190 @vsub_eq_zero_iff_eq V2, \u2190 f.linearMap_vsub, h,\n LinearMap.zero_apply]", "informal": "We're rewriting part of the expression using [coe_const,." }, { "formal": "rcases h with \u27e8q, rfl\u27e9", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "exact const_linear k P1 q", "informal": "Here, we provide the exact term const_linear that solves our current goal." }, { "formal": "rw [Set.ext_iff]", "informal": "We're rewriting part of the expression using [Set.ext_iff]." }, { "formal": "simp_rw [mem_rightCoset_iff, SetLike.mem_coe]", "informal": "We're rewriting part of the expression using [mem_rightCoset_iff,." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "apply (h y).mpr", "informal": "Here, we apply the theorem/lemma (h." }, { "formal": "rw [mul_right_inv]", "informal": "We're rewriting part of the expression using [mul_right_inv]." }, { "formal": "exact s.one_mem", "informal": "Here, we provide the exact term s.one_mem that solves our current goal." }, { "formal": "intro h z", "informal": "We introduce new variables h." }, { "formal": "rw [\u2190 inv_mul_cancel_left y x\u207b\u00b9]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 mul_assoc]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact s.mul_mem_cancel_right h", "informal": "Here, we provide the exact term s.mul_mem_cancel_right that solves our current goal." }, { "formal": "simp [\u2190 Iso.eq_inv_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases Int.eq_nat_or_neg d with \u27e8_, rfl | rfl\u27e9 <;> simp [divInt_neg', neg_mkRat]", "informal": "We're breaking down the problem into cases based on Int.eq_nat_or_neg." }, { "formal": "rcases Int.eq_nat_or_neg d with \u27e8_, rfl | rfl\u27e9 <;> simp [divInt_neg', neg_mkRat]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 h\u2081.cancel_right_isIso _\n (Scheme.\u0393.map (IsOpenImmersion.isoOfRangeEq (Y.ofRestrict _) f _).hom.op),\n \u2190 Functor.map_comp, \u2190 op_comp]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [IsOpenImmersion.isoOfRangeEq_hom_fac_assoc]", "informal": "We're rewriting part of the expression using [IsOpenImmersion.isoOfRangeEq_hom_fac_assoc]." }, { "formal": "exact Subtype.range_coe", "informal": "Here, we provide the exact term Subtype.range_coe that solves our current goal." }, { "formal": "have l8 : log 8 = (3 : \u2115) * log 2 := by\n rw [\u2190 log_rpow zero_lt_two, rpow_nat_cast]\n norm_num", "informal": "We're rewriting part of the expression using l8." }, { "formal": "rw [l8]", "informal": "We're rewriting part of the expression using [l8]." }, { "formal": "apply le_sqrt_of_sq_le (le_trans _ this)", "informal": "Here, we apply the theorem/lemma le_sqrt_of_sq_le." }, { "formal": "rw [mul_right_comm, mul_pow, sq (log 2), \u2190 mul_assoc]", "informal": "We're rewriting part of the expression using [mul_right_comm,." }, { "formal": "apply mul_le_mul_of_nonneg_right _ (log_nonneg one_le_two)", "informal": "Here, we apply the theorem/lemma mul_le_mul_of_nonneg_right." }, { "formal": "rw [\u2190 le_div_iff']", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact sq_pos_of_ne_zero _ (by norm_num1)", "informal": "Here, we provide the exact term sq_pos_of_ne_zero that solves our current goal." }, { "formal": "rw [\u2190 log_rpow zero_lt_two, log_le_log, rpow_nat_cast]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [cast_pos]", "informal": "We're rewriting part of the expression using [cast_pos]." }, { "formal": "exact hN.trans_lt' (by norm_num1)", "informal": "Here, we provide the exact term hN.trans_lt' that solves our current goal." }, { "formal": "exact rpow_pos_of_pos zero_lt_two _", "informal": "Here, we provide the exact term rpow_pos_of_pos that solves our current goal." }, { "formal": "rw [sub_pos, div_lt_one (exp_pos _)]", "informal": "We're rewriting part of the expression using [sub_pos,." }, { "formal": "exact exp_one_gt_d9.trans_le' (by norm_num1)", "informal": "Here, we provide the exact term exp_one_gt_d9.trans_le' that solves our current goal." }, { "formal": "rw [\u2190 log_rpow zero_lt_two, rpow_nat_cast]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact log_two_lt_d9.le.trans (by norm_num1)", "informal": "Here, we provide the exact term log_two_lt_d9.le.trans that solves our current goal." }, { "formal": "rw [insert_eq_cons, prod_cons, prod_singleton]", "informal": "We're rewriting part of the expression using [insert_eq_cons,." }, { "formal": "simp only [IntegrableOn, he.restrict_map, he.integrable_map_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [coe_linearMapAt, if_pos hb]", "informal": "We're rewriting part of the expression using [coe_linearMapAt,." }, { "formal": "rw [\u2190 mul_assoc, invOf_mul_self, one_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "dsimp [NatTrans.leftDerived, Functor.leftDerivedObjIso]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Category.comp_id, Category.id_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 homologyFunctor_map, HomotopyCategory.homologyFunctor_map_factors]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [\u2190 Functor.map_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply HomotopyCategory.eq_of_homotopy", "informal": "Here, we apply the theorem/lemma HomotopyCategory.eq_of_homotopy." }, { "formal": "simp only [NatTrans.mapHomologicalComplex_naturality_assoc, \u2190 Functor.map_comp]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply Homotopy.compLeftId", "informal": "Here, we apply the theorem/lemma Homotopy.compLeftId." }, { "formal": "apply Homotopy.ofEq", "informal": "Here, we apply the theorem/lemma Homotopy.ofEq." }, { "formal": "simp only [Functor.map_id]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases h' : x = \u22a4", "informal": "We're breaking down the problem into cases based on h'." }, { "formal": "simp only [h', le_top]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [le_refl, coe_toReal h' h]", "informal": "This step concludes that both sides of our equation are identical." }, { "formal": "simp only [le_refl, coe_toReal h' h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [snorm_indicator_eq_snorm_restrict hs, snorm_indicator_eq_snorm_restrict hs]", "informal": "We're rewriting part of the expression using [snorm_indicator_eq_snorm_restrict." }, { "formal": "apply le_antisymm", "informal": "Here, we apply the theorem/lemma le_antisymm." }, { "formal": "rw [lieIdeal_oper_eq_span, lieSpan_le]", "informal": "We're rewriting part of the expression using [lieIdeal_oper_eq_span,." }, { "formal": "exact Submodule.subset_span", "informal": "Here, we provide the exact term Submodule.subset_span that solves our current goal." }, { "formal": "intro y m' hm'", "informal": "We introduce new variables y." }, { "formal": "rintro m'' \u27e8x, n, hm''\u27e9", "informal": "We introduce new variables m''." }, { "formal": "rw [\u2190 hm'', leibniz_lie]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "refine Submodule.add_mem _ ?_ ?_ <;> apply Submodule.subset_span", "informal": "Here, we apply the theorem/lemma Submodule.add_mem." }, { "formal": "simp only [lie_zero, Submodule.zero_mem]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro m\u2081 m\u2082 hm\u2081 hm\u2082", "informal": "We introduce new variables m\u2081." }, { "formal": "rw [lie_add]", "informal": "We're rewriting part of the expression using [lie_add]." }, { "formal": "exact Submodule.add_mem _ hm\u2081 hm\u2082", "informal": "Here, we provide the exact term Submodule.add_mem that solves our current goal." }, { "formal": "intro t m'' hm''", "informal": "We introduce new variables t." }, { "formal": "rw [lie_smul]", "informal": "We're rewriting part of the expression using [lie_smul]." }, { "formal": "exact Submodule.smul_mem _ t hm''", "informal": "Here, we provide the exact term Submodule.smul_mem that solves our current goal." }, { "formal": "rw [lieIdeal_oper_eq_span]", "informal": "We're rewriting part of the expression using [lieIdeal_oper_eq_span]." }, { "formal": "apply submodule_span_le_lieSpan", "informal": "Here, we apply the theorem/lemma submodule_span_le_lieSpan." }, { "formal": "simp only [and_left_comm, eq_comm, mem_map, Prod.mk.inj_iff, inl_apply, mem_bot, exists_eq_left',\n mem_prod]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [prod_cons, mul_eq_zero, ihL, mem_cons, eq_comm]", "informal": "We're rewriting part of the expression using [prod_cons,." }, { "formal": "simp only at he he_symm he' he'_symm", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "constructor <;> simp only [LocalEquiv.prod_source, LocalHomeomorph.prod_toLocalEquiv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 I.image_eq, \u2190 I'.image_eq, Set.prod_image_image_eq] at h3", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 (I.prod I').image_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact h3", "informal": "Here, we provide the exact term h3 that solves our current goal." }, { "formal": "rw [\u2190 I.image_eq, \u2190 I'.image_eq, Set.prod_image_image_eq] at h3", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 (I.prod I').image_eq]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact h3", "informal": "Here, we provide the exact term h3 that solves our current goal." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "apply ext_inner_left \u211d", "informal": "Here, we apply the theorem/lemma ext_inner_left." }, { "formal": "intro y", "informal": "We introduce new variables y." }, { "formal": "rw [o.inner_rightAngleRotationAux\u2081_right, \u2190 o.inner_rightAngleRotationAux\u2081_left, this,\n inner_neg_right]", "informal": "We're rewriting part of the expression using [o.inner_rightAngleRotationAux\u2081_right,." }, { "formal": "rw [\u2190 ofFn_get v.tail]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [isSemisimple_iff_no_abelian_ideals] at h", "informal": "We're rewriting part of the expression using [isSemisimple_iff_no_abelian_ideals]." }, { "formal": "apply h", "informal": "Here, we apply the theorem/lemma h." }, { "formal": "rw [\u2190 einfsep_pos]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact einfsep_pos_of_finite", "informal": "Here, we provide the exact term einfsep_pos_of_finite that solves our current goal." }, { "formal": "rw [zero_bind, map_zero, map_zero, fold_zero]", "informal": "We're rewriting part of the expression using [zero_bind,." }, { "formal": "rw [cons_bind, map_cons, map_cons, fold_cons_left, fold_cons_left, fold_add, ih]", "informal": "We're rewriting part of the expression using [cons_bind,." }, { "formal": "rw [t h.choose (\ud835\udfd9 _) _ hf _]", "informal": "We're rewriting part of the expression using [t." }, { "formal": "rw [id_comp]", "informal": "We're rewriting part of the expression using [id_comp]." }, { "formal": "exact h.choose_spec.choose_spec.2", "informal": "Here, we provide the exact term h.choose_spec.choose_spec.2 that solves our current goal." }, { "formal": "rw [Metric.isBounded_iff_subset_closedBall (0 : E)]", "informal": "We're rewriting part of the expression using [Metric.isBounded_iff_subset_closedBall." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "rcases h (Metric.ball_mem_nhds 0 zero_lt_one) with \u27e8\u03c1, h\u03c1, h\u03c1ball\u27e9", "informal": "We're breaking down the problem into cases based on h." }, { "formal": "rcases NormedField.exists_lt_norm \ud835\udd5c \u03c1 with \u27e8a, ha\u27e9", "informal": "We're breaking down the problem into cases based on NormedField.exists_lt_norm." }, { "formal": "rw [\u2190 ball_normSeminorm \ud835\udd5c E, Seminorm.smul_ball_zero (norm_pos_iff.1 <| h\u03c1.trans ha),\n ball_normSeminorm, mul_one] at h\u03c1ball", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact \u27e8\u2016a\u2016, h\u03c1ball.trans Metric.ball_subset_closedBall\u27e9", "informal": "Here, we provide the exact term \u27e8\u2016a\u2016, that solves our current goal." }, { "formal": "exact fun \u27e8C, hC\u27e9 => (isVonNBounded_closedBall \ud835\udd5c E C).subset hC", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "induction xs generalizing i j with\n| nil => cases h\u2080\n| cons x xs ih =>\n match i, j with\n | 0, 0 => rfl\n | i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n | i+1, 0 => ?_ | 0, j+1 => ?_\n all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]\n exact \u27e8_, h\u2082\u27e9; exact \u27e8_ , h\u2082.symm\u27e9", "informal": "We're rewriting part of the expression using xs." }, { "formal": "induction xs generalizing i j with\n| nil => cases h\u2080\n| cons x xs ih =>\n match i, j with\n | 0, 0 => rfl\n | i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n | i+1, 0 => ?_ | 0, j+1 => ?_\n all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]\n exact \u27e8_, h\u2082\u27e9; exact \u27e8_ , h\u2082.symm\u27e9", "informal": "We're breaking down the problem into cases based on xs." }, { "formal": "induction xs generalizing i j with\n| nil => cases h\u2080\n| cons x xs ih =>\n match i, j with\n | 0, 0 => rfl\n | i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n | i+1, 0 => ?_ | 0, j+1 => ?_\n all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]\n exact \u27e8_, h\u2082\u27e9; exact \u27e8_ , h\u2082.symm\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "induction xs generalizing i j with\n| nil => cases h\u2080\n| cons x xs ih =>\n match i, j with\n | 0, 0 => rfl\n | i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n | i+1, 0 => ?_ | 0, j+1 => ?_\n all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]\n exact \u27e8_, h\u2082\u27e9; exact \u27e8_ , h\u2082.symm\u27e9", "informal": "Here, we provide the exact term xs that solves our current goal." }, { "formal": "cases h\u2080", "informal": "We're breaking down the problem into cases based on h\u2080." }, { "formal": "match i, j with\n| 0, 0 => rfl\n| i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n| i+1, 0 => ?_ | 0, j+1 => ?_", "informal": "We're breaking down the problem into cases based on i,." }, { "formal": "match i, j with\n| 0, 0 => rfl\n| i+1, j+1 => simp; cases h\u2081 with\n | cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082\n| i+1, 0 => ?_ | 0, j+1 => ?_", "informal": "Here, we provide the exact term i, that solves our current goal." }, { "formal": "all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]", "informal": "We're rewriting part of the expression using simp." }, { "formal": "all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]", "informal": "We're breaking down the problem into cases based on simp." }, { "formal": "all_goals\n simp at h\u2082\n cases h\u2081; rename_i h' h\n have := h x ?_ rfl; cases this\n rw [mem_iff_get?]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8_, h\u2082\u27e9", "informal": "Here, we provide the exact term \u27e8_, that solves our current goal." }, { "formal": "exact \u27e8_ , h\u2082.symm\u27e9", "informal": "Here, we provide the exact term \u27e8_ that solves our current goal." }, { "formal": "cases h\u2081 with\n| cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082", "informal": "We're breaking down the problem into cases based on h\u2081." }, { "formal": "cases h\u2081 with\n| cons ha h\u2081 => exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082", "informal": "Here, we provide the exact term h\u2081 that solves our current goal." }, { "formal": "exact ih (Nat.lt_of_succ_lt_succ h\u2080) h\u2081 h\u2082", "informal": "Here, we provide the exact term ih that solves our current goal." }, { "formal": "simp at h\u2082", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases h\u2081", "informal": "We're breaking down the problem into cases based on h\u2081." }, { "formal": "cases this", "informal": "We're breaking down the problem into cases based on this." }, { "formal": "rw [mem_iff_get?]", "informal": "We're rewriting part of the expression using [mem_iff_get?]." }, { "formal": "rw [IsFiniteAdele, Filter.eventually_cofinite]", "informal": "We're rewriting part of the expression using [IsFiniteAdele,." }, { "formal": "have h_empty :\n {v : HeightOneSpectrum R | \u00ac(0 : v.adicCompletion K) \u2208 v.adicCompletionIntegers K} = \u2205 := by\n ext v; rw [mem_empty_iff_false, iff_false_iff]; intro hv\n rw [mem_setOf] at hv; apply hv; rw [mem_adicCompletionIntegers]\n have h_zero : (Valued.v (0 : v.adicCompletion K) : WithZero (Multiplicative \u2124)) = 0 :=\n Valued.v.map_zero'\n rw [h_zero]; exact zero_le_one' _", "informal": "Here, we apply the theorem/lemma h_empty." }, { "formal": "have h_empty :\n {v : HeightOneSpectrum R | \u00ac(0 : v.adicCompletion K) \u2208 v.adicCompletionIntegers K} = \u2205 := by\n ext v; rw [mem_empty_iff_false, iff_false_iff]; intro hv\n rw [mem_setOf] at hv; apply hv; rw [mem_adicCompletionIntegers]\n have h_zero : (Valued.v (0 : v.adicCompletion K) : WithZero (Multiplicative \u2124)) = 0 :=\n Valued.v.map_zero'\n rw [h_zero]; exact zero_le_one' _", "informal": "We're rewriting part of the expression using h_empty." }, { "formal": "have h_empty :\n {v : HeightOneSpectrum R | \u00ac(0 : v.adicCompletion K) \u2208 v.adicCompletionIntegers K} = \u2205 := by\n ext v; rw [mem_empty_iff_false, iff_false_iff]; intro hv\n rw [mem_setOf] at hv; apply hv; rw [mem_adicCompletionIntegers]\n have h_zero : (Valued.v (0 : v.adicCompletion K) : WithZero (Multiplicative \u2124)) = 0 :=\n Valued.v.map_zero'\n rw [h_zero]; exact zero_le_one' _", "informal": "We introduce new variables h_empty." }, { "formal": "have h_empty :\n {v : HeightOneSpectrum R | \u00ac(0 : v.adicCompletion K) \u2208 v.adicCompletionIntegers K} = \u2205 := by\n ext v; rw [mem_empty_iff_false, iff_false_iff]; intro hv\n rw [mem_setOf] at hv; apply hv; rw [mem_adicCompletionIntegers]\n have h_zero : (Valued.v (0 : v.adicCompletion K) : WithZero (Multiplicative \u2124)) = 0 :=\n Valued.v.map_zero'\n rw [h_zero]; exact zero_le_one' _", "informal": "Here, we provide the exact term h_empty that solves our current goal." }, { "formal": "rw [mem_empty_iff_false, iff_false_iff]", "informal": "We're rewriting part of the expression using [mem_empty_iff_false,." }, { "formal": "intro hv", "informal": "We introduce new variables hv." }, { "formal": "rw [mem_setOf] at hv", "informal": "We're rewriting part of the expression using [mem_setOf]." }, { "formal": "apply hv", "informal": "Here, we apply the theorem/lemma hv." }, { "formal": "rw [mem_adicCompletionIntegers]", "informal": "We're rewriting part of the expression using [mem_adicCompletionIntegers]." }, { "formal": "rw [h_zero]", "informal": "We're rewriting part of the expression using [h_zero]." }, { "formal": "exact zero_le_one' _", "informal": "Here, we provide the exact term zero_le_one' that solves our current goal." }, { "formal": "rw [\u2190 one_div, div_le_iff ha, \u2190 div_eq_inv_mul, le_div_iff hb, one_mul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [div_eq_mul_inv, mul_right_inv a]", "informal": "We're rewriting part of the expression using [div_eq_mul_inv,." }, { "formal": "simp [hp_pos]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [lintegral_indicator_const\u2080 hs, ENNReal.mul_rpow_of_nonneg, \u2190 ENNReal.rpow_mul,\n mul_one_div_cancel hp_pos.ne', ENNReal.rpow_one]", "informal": "We're rewriting part of the expression using [lintegral_indicator_const\u2080." }, { "formal": "simp only [disjUnion_eq_union, Finset.ext_iff, pairs, filter_filter, mem_filter]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro a", "informal": "We introduce new variables a." }, { "formal": "rw [\u2190 filter_or, mem_filter]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [\u2190 take_spec p h, darts_append, List.mem_append]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact Or.inr hx", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "exact Or.inl h", "informal": "Here, we provide the exact term Or.inl that solves our current goal." }, { "formal": "exact Or.inr ((succ_le_of_lt h).antisymm (lsub_le_sup_succ f))", "informal": "Here, we provide the exact term Or.inr that solves our current goal." }, { "formal": "simp only [isLocallySurjective_iff_imagePresheaf_sheafify_eq_top]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [triangle_succ n, choose, ih]", "informal": "We're rewriting part of the expression using [triangle_succ." }, { "formal": "simp [add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact this", "informal": "Here, we provide the exact term this that solves our current goal." }, { "formal": "simp only [nhdsWithin, mem_inf_principal] at hf", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rcases exists_mem_compactCovering x with \u27e8n, hn\u27e9", "informal": "We're breaking down the problem into cases based on exists_mem_compactCovering." }, { "formal": "rcases mem_iUnion\u2082.1 (hsub n \u27e8hn, hx\u27e9) with \u27e8y, hyt : y \u2208 t n, hyf : x \u2208 s \u2192 x \u2208 f y\u27e9", "informal": "We're breaking down the problem into cases based on mem_iUnion\u2082.1." }, { "formal": "exact \u27e8y, mem_iUnion.2 \u27e8n, hyt\u27e9, hyf hx\u27e9", "informal": "Here, we provide the exact term \u27e8y, that solves our current goal." }, { "formal": "dsimp only [regionBetween, Ioc, mem_setOf_eq, setOf_and]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact measurable_fst hs", "informal": "Here, we provide the exact term measurable_fst that solves our current goal." }, { "formal": "exact \u27e8s, s_count, s_dense, fun h => hs.1 0 (by simp) h, fun h => hs.2 \u221e (by simp) h\u27e9", "informal": "Here, we provide the exact term \u27e8s, that solves our current goal." }, { "formal": "rw [prod_univ_castSucc, prod_univ_four]", "informal": "We're rewriting part of the expression using [prod_univ_castSucc,." }, { "formal": "rintro \u27e8\u27e9 \u27e8\u27e9 \u27e8\u27e9", "informal": "We introduce new variables \u27e8\u27e9." }, { "formal": "rw [characteristic_iff_map_eq]", "informal": "We're rewriting part of the expression using [characteristic_iff_map_eq]." }, { "formal": "intro \u03a6", "informal": "We introduce new variables \u03a6." }, { "formal": "dsimp [tensorHom]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "apply IsLimit.hom_ext (\u212c _ _).isLimit", "informal": "Here, we apply the theorem/lemma IsLimit.hom_ext." }, { "formal": "rintro \u27e8\u27e8\u27e9\u27e9 <;> simp", "informal": "We introduce new variables \u27e8\u27e8\u27e9\u27e9." }, { "formal": "dsimp [maxPowDiv]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [maxPowDiv.go_eq, if_pos, mul_div_right _ this]", "informal": "We're rewriting part of the expression using [maxPowDiv.go_eq,." }, { "formal": "apply go_succ", "informal": "Here, we apply the theorem/lemma go_succ." }, { "formal": "apply Nat.mul_pos this hn", "informal": "Here, we apply the theorem/lemma Nat.mul_pos." }, { "formal": "rintro x hxK", "informal": "We introduce new variables x." }, { "formal": "rw [zero_sub, inner_neg_right, Right.neg_nonpos_iff] at hinner\u2080", "informal": "We're rewriting part of the expression using [zero_sub,." }, { "formal": "have hbz : b - z \u2260 0 := by\n rw [sub_ne_zero]\n contrapose! hzK\n rwa [\u2190 hzK]", "informal": "We're rewriting part of the expression using hbz." }, { "formal": "rw [\u2190 neg_zero, lt_neg, \u2190 neg_one_mul, \u2190 real_inner_smul_left, smul_sub, neg_smul, one_smul,\n neg_smul, neg_sub_neg, one_smul]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "calc\n 0 < \u27eab - z, b - z\u27eb_\u211d := lt_of_not_le ((Iff.not real_inner_self_nonpos).2 hbz)\n _ = \u27eab - z, b - z\u27eb_\u211d + 0 := (add_zero _).symm\n _ \u2264 \u27eab - z, b - z\u27eb_\u211d + \u27eab - z, z\u27eb_\u211d := (add_le_add rfl.ge hinner\u2080)\n _ = \u27eab - z, b - z + z\u27eb_\u211d := (inner_add_right _ _ _).symm\n _ = \u27eab - z, b\u27eb_\u211d := by rw [sub_add_cancel]", "informal": "We're rewriting part of the expression using 0." }, { "formal": "rw [sub_ne_zero]", "informal": "We're rewriting part of the expression using [sub_ne_zero]." }, { "formal": "rw [sub_add_cancel]", "informal": "We're rewriting part of the expression using [sub_add_cancel]." }, { "formal": "simp only [cancel_mono]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [\u2190 nonempty_invertible_iff_isUnit,\n (invertibleEquivFromBlocks\u2081\u2081Invertible A B C D).nonempty_congr]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [sum_apply _ hs]", "informal": "Here, we apply the theorem/lemma [sum_apply." }, { "formal": "simp_rw [sum_apply _ hs]", "informal": "We're rewriting part of the expression using [sum_apply." }, { "formal": "rw [ENNReal.tsum_comm]", "informal": "We're rewriting part of the expression using [ENNReal.tsum_comm]." }, { "formal": "conv_rhs => rw [\u2190 op_unop a, \u2190 op_unop x, \u2190 op_unop y, semiconjBy_op]", "informal": "We're rewriting part of the expression using =>." }, { "formal": "rw [Ne.def, dite_eq_left_iff, not_forall]", "informal": "We're rewriting part of the expression using [Ne.def,." }, { "formal": "exact exists_congr fun h \u21a6 by rw [ne_comm]", "informal": "We're rewriting part of the expression using exists_congr." }, { "formal": "exact exists_congr fun h \u21a6 by rw [ne_comm]", "informal": "Here, we provide the exact term exists_congr that solves our current goal." }, { "formal": "rw [ne_comm]", "informal": "We're rewriting part of the expression using [ne_comm]." }, { "formal": "rcases mkAlgHom_surjective S s x with \u27e8x, rfl\u27e9", "informal": "We're breaking down the problem into cases based on mkAlgHom_surjective." }, { "formal": "exact AlgHom.congr_fun w x", "informal": "Here, we provide the exact term AlgHom.congr_fun that solves our current goal." }, { "formal": "rw [\u2190 \u03b9_comp_coequalizerComparison_assoc, \u2190 PreservesCoequalizer.iso_hom, Iso.hom_inv_id,\n comp_id]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "intro h", "informal": "We introduce new variables h." }, { "formal": "cases eq\u2082", "informal": "We're breaking down the problem into cases based on eq\u2082." }, { "formal": "cases eq\u2081", "informal": "We're breaking down the problem into cases based on eq\u2081." }, { "formal": "cases eq\u2082", "informal": "We're breaking down the problem into cases based on eq\u2082." }, { "formal": "rw [Step.cons_left_iff] at h\u2081\u2082", "informal": "We're rewriting part of the expression using [Step.cons_left_iff]." }, { "formal": "rcases h\u2081\u2082 with (\u27e8L, h\u2081\u2082, rfl\u27e9 | rfl)", "informal": "We're breaking down the problem into cases based on h\u2081\u2082." }, { "formal": "exact (ih rfl rfl).head h\u2081\u2082", "informal": "Here, we provide the exact term (ih that solves our current goal." }, { "formal": "exact (cons_cons h).tail Step.cons_not_rev", "informal": "Here, we provide the exact term (cons_cons that solves our current goal." }, { "formal": "rw [\u2190 c.closure_eq_self_of_mem_closed hy, \u2190 le_closure_iff]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [affineIndependent_iff_linearIndependent_vsub k p default] at hi", "informal": "We're rewriting part of the expression using [affineIndependent_iff_linearIndependent_vsub." }, { "formal": "simp only [mem_biUnion, mem_interedges_iff, exists_and_right, \u2190 and_assoc]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact \u27e8fun E X epi => Module.projective_lifting_property _ _\n ((ModuleCat.epi_iff_surjective _).mp epi)\u27e9", "informal": "Here, we provide the exact term \u27e8fun that solves our current goal." }, { "formal": "intro E X mE mX sE sX f g s", "informal": "We introduce new variables E." }, { "formal": "exact \u27e8Projective.factorThru (\u219fg) (\u219ff), Projective.factorThru_comp (\u219fg) (\u219ff)\u27e9", "informal": "Here, we provide the exact term \u27e8Projective.factorThru that solves our current goal." }, { "formal": "apply isTopologicalBasis_of_open_of_nhds", "informal": "Here, we apply the theorem/lemma isTopologicalBasis_of_open_of_nhds." }, { "formal": "intro u hu", "informal": "We introduce new variables u." }, { "formal": "exact isOpenMap_sigmaMk _ ((hs i).isOpen ts)", "informal": "Here, we provide the exact term isOpenMap_sigmaMk that solves our current goal." }, { "formal": "rintro \u27e8i, x\u27e9 u hxu u_open", "informal": "We introduce new variables \u27e8i,." }, { "formal": "by_cases hE : CompleteSpace E", "informal": "We're breaking down the problem into cases based on hE." }, { "formal": "by_cases hg : Integrable g (\u03bc.withDensity fun x => f x)", "informal": "We're breaking down the problem into cases based on hg." }, { "formal": "simp [integral, hE]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [integral_undef hg, integral_undef]", "informal": "We're rewriting part of the expression using [integral_undef." }, { "formal": "intro c s s_meas hs", "informal": "We introduce new variables c." }, { "formal": "rw [integral_indicator s_meas]", "informal": "We're rewriting part of the expression using [integral_indicator." }, { "formal": "simp_rw [\u2190 indicator_smul_apply, integral_indicator s_meas]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp only [s_meas, integral_const, Measure.restrict_apply', univ_inter, withDensity_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [lintegral_coe_eq_integral, ENNReal.toReal_ofReal, \u2190 integral_smul_const]", "informal": "We're rewriting part of the expression using [lintegral_coe_eq_integral,." }, { "formal": "exact integral_nonneg fun x => NNReal.coe_nonneg _", "informal": "Here, we provide the exact term integral_nonneg that solves our current goal." }, { "formal": "rw [withDensity_apply _ s_meas] at hs", "informal": "Here, we apply the theorem/lemma [withDensity_apply." }, { "formal": "rw [withDensity_apply _ s_meas] at hs", "informal": "We're rewriting part of the expression using [withDensity_apply." }, { "formal": "rw [HasFiniteIntegral]", "informal": "We're rewriting part of the expression using [HasFiniteIntegral]." }, { "formal": "simp only [NNReal.nnnorm_eq]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro u u' _ u_int u'_int h h'", "informal": "We introduce new variables u." }, { "formal": "simp_rw [smul_add]", "informal": "We're rewriting part of the expression using [smul_add]." }, { "formal": "rw [integral_add u_int u'_int, h, h', integral_add]", "informal": "We're rewriting part of the expression using [integral_add." }, { "formal": "exact (integrable_withDensity_iff_integrable_smul f_meas).1 u_int", "informal": "Here, we provide the exact term (integrable_withDensity_iff_integrable_smul that solves our current goal." }, { "formal": "exact (integrable_withDensity_iff_integrable_smul f_meas).1 u'_int", "informal": "Here, we provide the exact term (integrable_withDensity_iff_integrable_smul that solves our current goal." }, { "formal": "have C2 : Continuous fun u : Lp E 1 (\u03bc.withDensity fun x => f x) => \u222b x, f x \u2022 u x \u2202\u03bc := by\n have : Continuous ((fun u : Lp E 1 \u03bc => \u222b x, u x \u2202\u03bc) \u2218 withDensitySMulLI (E := E) \u03bc f_meas) :=\n continuous_integral.comp (withDensitySMulLI (E := E) \u03bc f_meas).continuous\n convert this with u\n simp only [Function.comp_apply, withDensitySMulLI_apply]\n exact integral_congr_ae (mem\u21121_smul_of_L1_withDensity f_meas u).coeFn_toLp.symm", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "have C2 : Continuous fun u : Lp E 1 (\u03bc.withDensity fun x => f x) => \u222b x, f x \u2022 u x \u2202\u03bc := by\n have : Continuous ((fun u : Lp E 1 \u03bc => \u222b x, u x \u2202\u03bc) \u2218 withDensitySMulLI (E := E) \u03bc f_meas) :=\n continuous_integral.comp (withDensitySMulLI (E := E) \u03bc f_meas).continuous\n convert this with u\n simp only [Function.comp_apply, withDensitySMulLI_apply]\n exact integral_congr_ae (mem\u21121_smul_of_L1_withDensity f_meas u).coeFn_toLp.symm", "informal": "Here, we provide the exact term C2 that solves our current goal." }, { "formal": "exact isClosed_eq C1 C2", "informal": "Here, we provide the exact term isClosed_eq that solves our current goal." }, { "formal": "simp only [Function.comp_apply, withDensitySMulLI_apply]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact integral_congr_ae (mem\u21121_smul_of_L1_withDensity f_meas u).coeFn_toLp.symm", "informal": "Here, we provide the exact term integral_congr_ae that solves our current goal." }, { "formal": "intro u v huv _ hu", "informal": "We introduce new variables u." }, { "formal": "rw [\u2190 integral_congr_ae huv, hu]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "apply integral_congr_ae", "informal": "Here, we apply the theorem/lemma integral_congr_ae." }, { "formal": "rcases eq_or_ne (f x) 0 with (h'x | h'x)", "informal": "We're breaking down the problem into cases based on eq_or_ne." }, { "formal": "simp only [h'x, zero_smul]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [hx _]", "informal": "We're rewriting part of the expression using [hx." }, { "formal": "rw [\u2190 compl_not_mem_iff, compl_compl]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [AccPt, nhdsWithin, ClusterPt, inf_assoc]", "informal": "We're rewriting part of the expression using [AccPt,." }, { "formal": "simp only [Set.preimage_setOf_eq, mem_setOf_eq, Formula.realize_relabel]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "intro x hx", "informal": "We introduce new variables x." }, { "formal": "rw [mem_upperCentralSeries_succ_iff]", "informal": "We're rewriting part of the expression using [mem_upperCentralSeries_succ_iff]." }, { "formal": "exact fun y => ascending_central_series_le_upper H hH n (hH.2 x n hx y)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [nonuniformWitnesses, dif_pos h]", "informal": "We're rewriting part of the expression using [nonuniformWitnesses,." }, { "formal": "exact (not_isUniform_iff.1 h).choose_spec.1", "informal": "Here, we provide the exact term (not_isUniform_iff.1 that solves our current goal." }, { "formal": "rw [ofReal_nat_cast]", "informal": "We're rewriting part of the expression using [ofReal_nat_cast]." }, { "formal": "simp only [Subset.antisymm_iff, \u2190 le_antisymm_iff, withBotCoe_subset_iff]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [node3L, node3R, dual_node', add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 Finset.mem_coe, coe_range, coe_restrict _ hs, mem_range_indicator]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [frontier, closure_Ioc h.ne, interior_Ioc, Icc_diff_Ioo_same h.le]", "informal": "We're rewriting part of the expression using [frontier,." }, { "formal": "rw [fderivWithin_congr hs hx]", "informal": "We're rewriting part of the expression using [fderivWithin_congr." }, { "formal": "rw [dist_nndist, Real.toNNReal_coe]", "informal": "We're rewriting part of the expression using [dist_nndist,." }, { "formal": "rw [\u2190 two_mul, mul_invOf_self]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "erw [coeff, \u2190 h, \u2190 Finsupp.unique_single s]", "informal": "We're rewriting part of the expression using [coeff,." }, { "formal": "simp only [glueDist, Sum.swap_inl, Sum.swap_inr, dist_comm, add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [glueDist, Sum.swap_inl, Sum.swap_inr, dist_comm, add_comm]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "by_cases h:j = i", "informal": "We're breaking down the problem into cases based on h:j." }, { "formal": "simp [h]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [smul_apply, comapDomain_apply, smul_apply, comapDomain_apply]", "informal": "We're rewriting part of the expression using [smul_apply,." }, { "formal": "classical\n calc\n card \u03b1 = card (\u03a3y : Quotient (orbitRel G \u03b1), { x // Quotient.mk'' x = y }) :=\n card_congr (Equiv.sigmaFiberEquiv (@Quotient.mk'' _ (orbitRel G \u03b1))).symm\n _ = \u2211 a : Quotient (orbitRel G \u03b1), card { x // Quotient.mk'' x = a } := (card_sigma _)\n _ \u2261 \u2211 _a : fixedPoints G \u03b1, 1 [MOD p] := ?_\n _ = _ := by simp; rfl\n rw [\u2190 ZMod.eq_iff_modEq_nat p, Nat.cast_sum, Nat.cast_sum]\n have key :\n \u2200 x,\n card { y // (Quotient.mk'' y : Quotient (orbitRel G \u03b1)) = Quotient.mk'' x } =\n card (orbit G x) :=\n fun x => by simp only [Quotient.eq'']; congr\n refine'\n Eq.symm\n (Finset.sum_bij_ne_zero (fun a _ _ => Quotient.mk'' a.1) (fun _ _ _ => Finset.mem_univ _)\n (fun a\u2081 a\u2082 _ _ _ _ h =>\n Subtype.eq ((mem_fixedPoints' \u03b1).mp a\u2082.2 a\u2081.1 (Quotient.exact' h)))\n (fun b => Quotient.inductionOn' b fun b _ hb => _) fun a ha _ => by\n rw [key, mem_fixedPoints_iff_card_orbit_eq_one.mp a.2])\n obtain \u27e8k, hk\u27e9 := hG.card_orbit b\n have : k = 0 :=\n le_zero_iff.1\n (Nat.le_of_lt_succ\n (lt_of_not_ge\n (mt (pow_dvd_pow p)\n (by\n rwa [pow_one, \u2190 hk, \u2190 Nat.modEq_zero_iff_dvd, \u2190 ZMod.eq_iff_modEq_nat, \u2190 key,\n Nat.cast_zero]))))\n exact\n \u27e8\u27e8b, mem_fixedPoints_iff_card_orbit_eq_one.2 <| by rw [hk, this, pow_zero]\u27e9,\n Finset.mem_univ _, ne_of_eq_of_ne Nat.cast_one one_ne_zero, rfl\u27e9", "informal": "We're rewriting part of the expression using calc." }, { "formal": "classical\n calc\n card \u03b1 = card (\u03a3y : Quotient (orbitRel G \u03b1), { x // Quotient.mk'' x = y }) :=\n card_congr (Equiv.sigmaFiberEquiv (@Quotient.mk'' _ (orbitRel G \u03b1))).symm\n _ = \u2211 a : Quotient (orbitRel G \u03b1), card { x // Quotient.mk'' x = a } := (card_sigma _)\n _ \u2261 \u2211 _a : fixedPoints G \u03b1, 1 [MOD p] := ?_\n _ = _ := by simp; rfl\n rw [\u2190 ZMod.eq_iff_modEq_nat p, Nat.cast_sum, Nat.cast_sum]\n have key :\n \u2200 x,\n card { y // (Quotient.mk'' y : Quotient (orbitRel G \u03b1)) = Quotient.mk'' x } =\n card (orbit G x) :=\n fun x => by simp only [Quotient.eq'']; congr\n refine'\n Eq.symm\n (Finset.sum_bij_ne_zero (fun a _ _ => Quotient.mk'' a.1) (fun _ _ _ => Finset.mem_univ _)\n (fun a\u2081 a\u2082 _ _ _ _ h =>\n Subtype.eq ((mem_fixedPoints' \u03b1).mp a\u2082.2 a\u2081.1 (Quotient.exact' h)))\n (fun b => Quotient.inductionOn' b fun b _ hb => _) fun a ha _ => by\n rw [key, mem_fixedPoints_iff_card_orbit_eq_one.mp a.2])\n obtain \u27e8k, hk\u27e9 := hG.card_orbit b\n have : k = 0 :=\n le_zero_iff.1\n (Nat.le_of_lt_succ\n (lt_of_not_ge\n (mt (pow_dvd_pow p)\n (by\n rwa [pow_one, \u2190 hk, \u2190 Nat.modEq_zero_iff_dvd, \u2190 ZMod.eq_iff_modEq_nat, \u2190 key,\n Nat.cast_zero]))))\n exact\n \u27e8\u27e8b, mem_fixedPoints_iff_card_orbit_eq_one.2 <| by rw [hk, this, pow_zero]\u27e9,\n Finset.mem_univ _, ne_of_eq_of_ne Nat.cast_one one_ne_zero, rfl\u27e9", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 ZMod.eq_iff_modEq_nat p, Nat.cast_sum, Nat.cast_sum]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have key :\n \u2200 x,\n card { y // (Quotient.mk'' y : Quotient (orbitRel G \u03b1)) = Quotient.mk'' x } =\n card (orbit G x) :=\n fun x => by simp only [Quotient.eq'']; congr", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "refine'\n Eq.symm\n (Finset.sum_bij_ne_zero (fun a _ _ => Quotient.mk'' a.1) (fun _ _ _ => Finset.mem_univ _)\n (fun a\u2081 a\u2082 _ _ _ _ h =>\n Subtype.eq ((mem_fixedPoints' \u03b1).mp a\u2082.2 a\u2081.1 (Quotient.exact' h)))\n (fun b => Quotient.inductionOn' b fun b _ hb => _) fun a ha _ => by\n rw [key, mem_fixedPoints_iff_card_orbit_eq_one.mp a.2])", "informal": "We're rewriting part of the expression using Eq.symm." }, { "formal": "exact\n \u27e8\u27e8b, mem_fixedPoints_iff_card_orbit_eq_one.2 <| by rw [hk, this, pow_zero]\u27e9,\n Finset.mem_univ _, ne_of_eq_of_ne Nat.cast_one one_ne_zero, rfl\u27e9", "informal": "We're rewriting part of the expression using \u27e8\u27e8b,." }, { "formal": "simp only [Quotient.eq'']", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [key, mem_fixedPoints_iff_card_orbit_eq_one.mp a.2]", "informal": "We're rewriting part of the expression using [key,." }, { "formal": "rw [hk, this, pow_zero]", "informal": "We're rewriting part of the expression using [hk,." }, { "formal": "exact h", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "simp_rw [IsPGroup, \u2190 h\u03d5.eq_iff, \u03d5.map_pow, \u03d5.map_one]", "informal": "We're rewriting part of the expression using [IsPGroup,." }, { "formal": "exact fun h => hG (\u03d5 h)", "informal": "Here, we provide the exact term fun that solves our current goal." }, { "formal": "rw [mem_ssubsets, ssubset_iff_subset_ne]", "informal": "We're rewriting part of the expression using [mem_ssubsets,." }, { "formal": "exact \u27e8empty_subset s, h.ne_empty.symm\u27e9", "informal": "Here, we provide the exact term \u27e8empty_subset that solves our current goal." }, { "formal": "have h :\n \u2200\u1d50 x \u2202\u03bc, \u2203 l : E,\n atTop.Tendsto (fun n => \u2211 i in Finset.range n, (f (i + 1) x - f i x)) (\ud835\udcdd l) := by\n refine' h_summable.mono fun x hx => _\n let hx_sum := hx.hasSum.tendsto_sum_nat\n exact \u27e8\u2211' i, (f (i + 1) x - f i x), hx_sum\u27e9", "informal": "Here, we provide the exact term h that solves our current goal." }, { "formal": "have h_rw_sum :\n (fun n => \u2211 i in Finset.range n, (f (i + 1) x - f i x)) = fun n => f n x - f 0 x := by\n ext1 n\n change\n (\u2211 i : \u2115 in Finset.range n, ((fun m => f m x) (i + 1) - (fun m => f m x) i)) = f n x - f 0 x\n rw [Finset.sum_range_sub (fun m => f m x)]", "informal": "We're rewriting part of the expression using h_rw_sum." }, { "formal": "rw [h_rw_sum] at hx", "informal": "We're rewriting part of the expression using [h_rw_sum]." }, { "formal": "have hf_rw : (fun n => f n x) = fun n => f n x - f 0 x + f 0 x := by\n ext1 n\n abel", "informal": "We're rewriting part of the expression using hf_rw." }, { "formal": "rw [hf_rw]", "informal": "We're rewriting part of the expression using [hf_rw]." }, { "formal": "exact \u27e8l + f 0 x, Tendsto.add_const _ hx\u27e9", "informal": "Here, we provide the exact term \u27e8l that solves our current goal." }, { "formal": "exact \u27e8\u2211' i, (f (i + 1) x - f i x), hx_sum\u27e9", "informal": "Here, we provide the exact term \u27e8\u2211' that solves our current goal." }, { "formal": "rw [Finset.sum_range_sub (fun m => f m x)]", "informal": "We're rewriting part of the expression using [Finset.sum_range_sub." }, { "formal": "rw [\u2190 rpow_le_rpow_left_iff hb, rpow_logb (b_pos hb) (b_ne_one' hb) hx]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rw [Ideal.isMaximal_def]", "informal": "We're rewriting part of the expression using [Ideal.isMaximal_def]." }, { "formal": "rw [\u2190 Ideal.isMaximal_def] at hI", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact idealOfSet_ofIdeal_isClosed inferInstance", "informal": "Here, we provide the exact term idealOfSet_ofIdeal_isClosed that solves our current goal." }, { "formal": "exact count_eq_one_of_mem d h", "informal": "Here, we provide the exact term count_eq_one_of_mem that solves our current goal." }, { "formal": "exact count_eq_zero_of_not_mem h", "informal": "Here, we provide the exact term count_eq_zero_of_not_mem that solves our current goal." }, { "formal": "rw [cosh, exp, exp, Complex.ofReal_neg, Complex.cosh, mul_two, \u2190 Complex.add_re, \u2190 mul_two,\n div_mul_cancel _ (two_ne_zero' \u2102), Complex.add_re]", "informal": "We're rewriting part of the expression using [cosh,." }, { "formal": "simp only [mul_one, Finset.sum_mul, Algebra.smul_mul_assoc, average, MonoidAlgebra.of_apply,\n Finset.sum_congr, MonoidAlgebra.single_mul_single]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [Function.Bijective.sum_comp (Group.mulRight_bijective g) _]", "informal": "We're rewriting part of the expression using [Function.Bijective.sum_comp." }, { "formal": "rw [Int.mul_comm, mul_emod_left]", "informal": "We're rewriting part of the expression using [Int.mul_comm,." }, { "formal": "simp [count_cons]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [birkhoffAverage]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [set_lintegral_compProd \u03ba \u03b7 a hf MeasurableSet.univ ht, Measure.restrict_univ]", "informal": "We're rewriting part of the expression using [set_lintegral_compProd." }, { "formal": "rw [cycleRange_of_le h.le, if_pos h]", "informal": "We're rewriting part of the expression using [cycleRange_of_le." }, { "formal": "rw [\u2190 cancel_mono (\u03b1.app X), \u2190 comp_app, eq, comp_app]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [tail]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "erw [ClassGroup.mk, MonoidHom.comp_apply, \u2190 MonoidHom.comp_apply (Units.map _),\n \u2190 Units.map_comp, \u2190 RingEquiv.coe_monoidHom_trans,\n FractionalIdeal.canonicalEquiv_trans_canonicalEquiv]", "informal": "Here, we apply the theorem/lemma [ClassGroup.mk,." }, { "formal": "erw [ClassGroup.mk, MonoidHom.comp_apply, \u2190 MonoidHom.comp_apply (Units.map _),\n \u2190 Units.map_comp, \u2190 RingEquiv.coe_monoidHom_trans,\n FractionalIdeal.canonicalEquiv_trans_canonicalEquiv]", "informal": "We're rewriting part of the expression using [ClassGroup.mk,." }, { "formal": "rw [zero_nsmul] at h", "informal": "We're rewriting part of the expression using [zero_nsmul]." }, { "formal": "exact absurd h (not_mem_zero _)", "informal": "Here, we provide the exact term absurd that solves our current goal." }, { "formal": "rw [succ_nsmul, mem_add] at h", "informal": "We're rewriting part of the expression using [succ_nsmul,." }, { "formal": "exact h.elim id ih", "informal": "Here, we provide the exact term h.elim that solves our current goal." }, { "formal": "simp [Nat.WithBot.add_eq_one_iff, hf, @eq_comm (WithBot \u2115) 1,\n mt isUnit_iff_degree_eq_zero.2 hg.1] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp_rw [orthonormal_iff_ite, EuclideanSpace.inner_single_left, map_one, one_mul,\n EuclideanSpace.single_apply]", "informal": "We're rewriting part of the expression using [orthonormal_iff_ite,." }, { "formal": "simp only [Nat.rfindOpt, exists_prop, tsub_eq_zero_iff_le, PFun.coe_val, Part.mem_bind_iff,\n Part.mem_some_iff, Option.mem_def, Part.mem_coe]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases f (n ::\u1d65 v) <;> simp [Nat.succ_le_succ]", "informal": "We're breaking down the problem into cases based on f." }, { "formal": "cases f (n ::\u1d65 v) <;> simp [Nat.succ_le_succ]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp only [Part.coe_some, Part.mem_some_iff] at this", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "cases' f (a ::\u1d65 v) with c <;> intro this", "informal": "We introduce new variables f." }, { "formal": "rw [\u2190 Option.some_inj, eq_comm]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "cases this", "informal": "We're breaking down the problem into cases based on this." }, { "formal": "rw [add_def, normalize_eq_mkRat]", "informal": "We're rewriting part of the expression using [add_def,." }, { "formal": "rw [bit0, \u2190 two_mul, iterate_mul, involutive_iff_iter_2_eq_id.1 hf, iterate_id]", "informal": "We're rewriting part of the expression using [bit0,." }, { "formal": "exact (strongTopology.embedding_coeFn \u03c3 F \ud835\udd16).t2Space", "informal": "Here, we provide the exact term (strongTopology.embedding_coeFn that solves our current goal." }, { "formal": "rcases eq_or_ne \u03c6 0 with (rfl | h\u03c6)", "informal": "We're breaking down the problem into cases based on eq_or_ne." }, { "formal": "have hn : \u03c6.order.get (order_finite_iff_ne_zero.mpr h\u03c6) = n := by simp [ho]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "rw [\u2190 hn]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "rintro \u27e8\u03c8, H\u27e9", "informal": "We introduce new variables \u27e8\u03c8,." }, { "formal": "rw [\u2190 (\u03c8.commute_X.pow_right _).eq, coeff_mul_of_lt_order, \u2190 hn] at this", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "simp [h\u03c6] at ho", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "simp [ho]", "informal": "We simplify the current expression or goal using the simp tactic." }, { "formal": "exact coeff_order _ this", "informal": "Here, we provide the exact term coeff_order that solves our current goal." }, { "formal": "rw [X_pow_eq, order_monomial]", "informal": "We're rewriting part of the expression using [X_pow_eq,." }, { "formal": "exact PartENat.natCast_lt_top _", "informal": "Here, we provide the exact term PartENat.natCast_lt_top that solves our current goal." }, { "formal": "rw [\u2190 hn, PartENat.coe_lt_coe]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "exact Nat.lt_succ_self _", "informal": "Here, we provide the exact term Nat.lt_succ_self that solves our current goal." }, { "formal": "rw [\u2190 inner_eq_mul_norm_iff_angle_eq_zero hx hy]", "informal": "We're rewriting part of the expression using [\u2190." }, { "formal": "have h1 : \u2016x - y\u2016 ^ 2 = (\u2016x\u2016 - \u2016y\u2016) ^ 2 := by\n rw [h]\n exact sq_abs (\u2016x\u2016 - \u2016y\u2016)", "informal": "We're rewriting part of the expression using h1." }, { "formal": "have h1 : \u2016x - y\u2016 ^ 2 = (\u2016x\u2016 - \u2016y\u2016) ^ 2 := by\n rw [h]\n exact sq_abs (\u2016x\u2016 - \u2016y\u2016)", "informal": "Here, we provide the exact term h1 that solves our current goal." }, { "formal": "rw [norm_sub_pow_two_real] at h1", "informal": "We're rewriting part of the expression using [norm_sub_pow_two_real]." }, { "formal": "rw [h]", "informal": "We're rewriting part of the expression using [h]." }, { "formal": "exact sq_abs (\u2016x\u2016 - \u2016y\u2016)", "informal": "Here, we provide the exact term sq_abs that solves our current goal." } ]