| Metamath
Proof Explorer Theorem List (p. 513 of 515) | < Previous Next > | |
| Bad symbols? Try the
GIF version. |
||
|
Mirrors > Metamath Home Page > MPE Home Page > Theorem List Contents > Recent Proofs This page: Page List |
||
| Color key: | (1-31577) |
(31578-33100) |
(33101-51418) |
| Type | Label | Description |
|---|---|---|
| Statement | ||
| Theorem | setrecsres 51201 | A recursively generated class is unaffected when its input function is restricted to subsets of the class. (Contributed by Emmett Weisz, 14-Mar-2022.) |
| ⊢ 𝐵 = setrecs(𝐹) & ⊢ (𝜑 → Fun 𝐹) ⇒ ⊢ (𝜑 → 𝐵 = setrecs((𝐹 ↾ 𝒫 𝐵))) | ||
| Theorem | vsetrec 51202 | Construct V using set recursion. The proof indirectly uses trcl 9766, which relies on rec, but theoretically 𝐶 in trcl 9766 could be constructed using setrecs instead. The proof of this theorem uses the dummy variable 𝑎 rather than 𝑥 to avoid a distinct variable requirement between 𝐹 and 𝑥. (Contributed by Emmett Weisz, 23-Jun-2021.) |
| ⊢ 𝐹 = (𝑥 ∈ V ↦ 𝒫 𝑥) ⇒ ⊢ setrecs(𝐹) = V | ||
| Theorem | 0setrec 51203 | If a function sends the empty set to itself, the function will not recursively generate any sets, regardless of its other values. (Contributed by Emmett Weisz, 23-Jun-2021.) |
| ⊢ (𝜑 → (𝐹‘∅) = ∅) ⇒ ⊢ (𝜑 → setrecs(𝐹) = ∅) | ||
| Theorem | onsetreclem1 51204* | Lemma for onsetrec 51207. (Contributed by Emmett Weisz, 22-Jun-2021.) (New usage is discouraged.) |
| ⊢ 𝐹 = (𝑥 ∈ V ↦ {∪ 𝑥, suc ∪ 𝑥}) ⇒ ⊢ (𝐹‘𝑎) = {∪ 𝑎, suc ∪ 𝑎} | ||
| Theorem | onsetreclem2 51205* | Lemma for onsetrec 51207. (Contributed by Emmett Weisz, 22-Jun-2021.) (New usage is discouraged.) |
| ⊢ 𝐹 = (𝑥 ∈ V ↦ {∪ 𝑥, suc ∪ 𝑥}) ⇒ ⊢ (𝑎 ⊆ On → (𝐹‘𝑎) ⊆ On) | ||
| Theorem | onsetreclem3 51206* | Lemma for onsetrec 51207. (Contributed by Emmett Weisz, 22-Jun-2021.) (New usage is discouraged.) |
| ⊢ 𝐹 = (𝑥 ∈ V ↦ {∪ 𝑥, suc ∪ 𝑥}) ⇒ ⊢ (𝑎 ∈ On → 𝑎 ∈ (𝐹‘𝑎)) | ||
| Theorem | onsetrec 51207 |
Construct On using set recursion. When 𝑥 ∈
On, the function
𝐹 constructs the least ordinal greater
than any of the elements of
𝑥, which is ∪ 𝑥 for a limit ordinal and suc ∪ 𝑥 for a
successor ordinal.
For example, (𝐹‘{1o, 2o}) = {∪ {1o, 2o}, suc ∪ {1o, 2o}} = {2o, 3o} which contains 3o, and (𝐹‘ω) = {∪ ω, suc ∪ ω} = {ω, ω +o 1o}, which contains ω. If we start with the empty set and keep applying 𝐹 transfinitely many times, all ordinal numbers will be generated. Any function 𝐹 fulfilling lemmas onsetreclem2 51205 and onsetreclem3 51206 will recursively generate On; for example, 𝐹 = (𝑥 ∈ V ↦ suc suc ∪ 𝑥}) also works. Whether this function or the function in the theorem is used, taking this theorem as a definition of On is unsatisfying because it relies on the different properties of limit and successor ordinals. A different approach could be to let 𝐹 = (𝑥 ∈ V ↦ {𝑦 ∈ 𝒫 𝑥 ∣ Tr 𝑦}), based on dfon2 36769. The proof of this theorem uses the dummy variable 𝑎 rather than 𝑥 to avoid a distinct variable condition between 𝐹 and 𝑥. (Contributed by Emmett Weisz, 22-Jun-2021.) |
| ⊢ 𝐹 = (𝑥 ∈ V ↦ {∪ 𝑥, suc ∪ 𝑥}) ⇒ ⊢ setrecs(𝐹) = On | ||
Model organization after organization of reals - see TOC | ||
| Syntax | cpg 51208 | Extend class notation to include the class of partisan game forms. |
| class Pg | ||
| Definition | df-pg 51209 | Define the class of partisan games. More precisely, this is the class of partisan game forms, many of which represent equal partisan games. In Metamath, equality between partisan games is represented by a different equivalence relation than class equality. (Contributed by Emmett Weisz, 22-Aug-2021.) |
| ⊢ Pg = setrecs((𝑥 ∈ V ↦ (𝒫 𝑥 × 𝒫 𝑥))) | ||
| Theorem | elpglem1 51210* | Lemma for elpg 51213. (Contributed by Emmett Weisz, 28-Aug-2021.) |
| ⊢ (∃𝑥(𝑥 ⊆ Pg ∧ ((1st ‘𝐴) ∈ 𝒫 𝑥 ∧ (2nd ‘𝐴) ∈ 𝒫 𝑥)) → ((1st ‘𝐴) ⊆ Pg ∧ (2nd ‘𝐴) ⊆ Pg)) | ||
| Theorem | elpglem2 51211* | Lemma for elpg 51213. (Contributed by Emmett Weisz, 28-Aug-2021.) |
| ⊢ (((1st ‘𝐴) ⊆ Pg ∧ (2nd ‘𝐴) ⊆ Pg) → ∃𝑥(𝑥 ⊆ Pg ∧ ((1st ‘𝐴) ∈ 𝒫 𝑥 ∧ (2nd ‘𝐴) ∈ 𝒫 𝑥))) | ||
| Theorem | elpglem3 51212* | Lemma for elpg 51213. (Contributed by Emmett Weisz, 28-Aug-2021.) |
| ⊢ (∃𝑥(𝑥 ⊆ Pg ∧ 𝐴 ∈ ((𝑦 ∈ V ↦ (𝒫 𝑦 × 𝒫 𝑦))‘𝑥)) ↔ (𝐴 ∈ (V × V) ∧ ∃𝑥(𝑥 ⊆ Pg ∧ ((1st ‘𝐴) ∈ 𝒫 𝑥 ∧ (2nd ‘𝐴) ∈ 𝒫 𝑥)))) | ||
| Theorem | elpg 51213 | Membership in the class of partisan games. In John Horton Conway's On Numbers and Games, this is stated as "If 𝐿 and 𝑅 are any two sets of games, then there is a game {𝐿 ∣ 𝑅}. All games are constructed in this way." The first sentence corresponds to the backward direction of our theorem, and the second to the forward direction. (Contributed by Emmett Weisz, 27-Aug-2021.) |
| ⊢ (𝐴 ∈ Pg ↔ (𝐴 ∈ (V × V) ∧ (1st ‘𝐴) ⊆ Pg ∧ (2nd ‘𝐴) ⊆ Pg)) | ||
| Theorem | pgindlem 51214 | Lemma for pgind 51216. (Contributed by Emmett Weisz, 27-May-2024.) (New usage is discouraged.) |
| ⊢ (𝑥 ∈ (𝒫 𝑧 × 𝒫 𝑧) → ((1st ‘𝑥) ∪ (2nd ‘𝑥)) ⊆ 𝑧) | ||
| Theorem | pgindnf 51215* | Version of pgind 51216 with extraneous not-free requirements. (Contributed by Emmett Weisz, 27-May-2024.) (New usage is discouraged.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝑥 = 𝑦 → (𝜓 ↔ 𝜒)) & ⊢ (𝑦 = 𝐴 → (𝜒 ↔ 𝜃)) & ⊢ (𝜑 → ∀𝑥(∀𝑦 ∈ ((1st ‘𝑥) ∪ (2nd ‘𝑥))𝜒 → 𝜓)) ⇒ ⊢ (𝜑 → (𝐴 ∈ Pg → 𝜃)) | ||
| Theorem | pgind 51216* | Induction on partizan games. (Contributed by Emmett Weisz, 27-May-2024.) |
| ⊢ (𝑥 = 𝑦 → (𝜓 ↔ 𝜒)) & ⊢ (𝑦 = 𝐴 → (𝜒 ↔ 𝜃)) & ⊢ (𝜑 → ∀𝑥(∀𝑦 ∈ ((1st ‘𝑥) ∪ (2nd ‘𝑥))𝜒 → 𝜓)) ⇒ ⊢ (𝜑 → (𝐴 ∈ Pg → 𝜃)) | ||
This is the mathbox of David A. Wheeler, dwheeler at dwheeler dot com . Among other things, I have added a number of formal definitions for widely-used functions, e.g., those defined in ISO 80000-2:2009(E) Quantities and units - Part 2: Mathematical signs and symbols used in the natural sciences and technology and the NIST Digital Library of Mathematical Functions http://dlmf.nist.gov/. | ||
| Theorem | sbidd 51217 | An identity theorem for substitution. See sbid 2294. See Remark 9.1 in [Megill] p. 447 (p. 15 of the preprint). (Contributed by DAW, 18-Feb-2017.) |
| ⊢ (𝜑 → [𝑥 / 𝑥]𝜓) ⇒ ⊢ (𝜑 → 𝜓) | ||
| Theorem | sbidd-misc 51218 | An identity theorem for substitution. See sbid 2294. See Remark 9.1 in [Megill] p. 447 (p. 15 of the preprint). (Contributed by DAW, 18-Feb-2017.) |
| ⊢ ((𝜑 → [𝑥 / 𝑥]𝜓) ↔ (𝜑 → 𝜓)) | ||
As a stylistic issue, set.mm prefers 'less than' instead of 'greater than' to reduce the number of conversion steps. Here we formally define the widely-used relations 'greater than' and 'greater than or equal to', so that we have formal definitions of them, as well as a few related theorems. | ||
| Syntax | cge-real 51219 | Extend wff notation to include the 'greater than or equal to' relation, see df-gte 51221. |
| class ≥ | ||
| Syntax | cgt 51220 | Extend wff notation to include the 'greater than' relation, see df-gt 51222. |
| class > | ||
| Definition | df-gte 51221 |
Define the 'greater than or equal' predicate over the reals. Defined in
ISO 80000-2:2009(E) operation 2-7.10. It is used as a primitive in the
"NIST Digital Library of Mathematical Functions" , front
introduction,
"Common Notations and Definitions" section at
http://dlmf.nist.gov/front/introduction#Sx4.
This relation is merely
the converse of the 'less than or equal to' relation defined by df-le 11388.
We do not write this as (𝑥 ≥ 𝑦 ↔ 𝑦 ≤ 𝑥), and similarly we do not write ` > ` as (𝑥 > 𝑦 ↔ 𝑦 < 𝑥), because these are not definitional axioms as understood by mmj2 (those definitions will be flagged as being "potentially non-conservative"). We could write them this way: ⊢ > = {〈𝑥, 𝑦〉 ∣ ((𝑥 ∈ ℝ* ∧ 𝑦 ∈ ℝ*) ∧ 𝑦 < 𝑥)} and ⊢ ≥ = {〈𝑥, 𝑦〉 ∣ ((𝑥 ∈ ℝ* ∧ 𝑦 ∈ ℝ*) ∧ 𝑦 ≤ 𝑥)} but these are very complicated. This definition of ≥, and the similar one for > (df-gt 51222), are a bit strange when you see them for the first time, but these definitions are much simpler for us to process and are clearly conservative definitions. (My thanks to Mario Carneiro for pointing out this simpler approach.) See gte-lte 51223 for a more conventional expression of the relationship between < and >. As a stylistic issue, set.mm prefers 'less than' instead of 'greater than' to reduce the number of conversion steps. Thus, we discourage its use, but include its definition so that there is a formal definition of this symbol. (Contributed by David A. Wheeler, 10-May-2015.) (New usage is discouraged.) |
| ⊢ ≥ = ◡ ≤ | ||
| Definition | df-gt 51222 |
The 'greater than' relation is merely the converse of the 'less than or
equal to' relation defined by df-lt 11252. Defined in ISO 80000-2:2009(E)
operation 2-7.12. See df-gte 51221 for a discussion on why this approach is
used for the definition. See gt-lt 51224 and gt-lth 51226 for more conventional
expression of the relationship between < and
>.
As a stylistic issue, set.mm prefers 'less than or equal' instead of 'greater than or equal' to reduce the number of conversion steps. Thus, we discourage its use, but include its definition so that there is a formal definition of this symbol. (Contributed by David A. Wheeler, 19-Apr-2015.) (New usage is discouraged.) |
| ⊢ > = ◡ < | ||
| Theorem | gte-lte 51223 | Simple relationship between ≤ and ≥. (Contributed by David A. Wheeler, 10-May-2015.) (New usage is discouraged.) |
| ⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 ≥ 𝐵 ↔ 𝐵 ≤ 𝐴)) | ||
| Theorem | gt-lt 51224 | Simple relationship between < and >. (Contributed by David A. Wheeler, 19-Apr-2015.) (New usage is discouraged.) |
| ⊢ ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴 > 𝐵 ↔ 𝐵 < 𝐴)) | ||
| Theorem | gte-lteh 51225 | Relationship between ≤ and ≥ using hypotheses. (Contributed by David A. Wheeler, 10-May-2015.) (New usage is discouraged.) |
| ⊢ 𝐴 ∈ V & ⊢ 𝐵 ∈ V ⇒ ⊢ (𝐴 ≥ 𝐵 ↔ 𝐵 ≤ 𝐴) | ||
| Theorem | gt-lth 51226 | Relationship between < and > using hypotheses. (Contributed by David A. Wheeler, 19-Apr-2015.) (New usage is discouraged.) |
| ⊢ 𝐴 ∈ V & ⊢ 𝐵 ∈ V ⇒ ⊢ (𝐴 > 𝐵 ↔ 𝐵 < 𝐴) | ||
| Theorem | ex-gt 51227 | Simple example of >, in this case, 0 is not greater than 0. This is useful as an example, and helps us gain confidence that we've correctly defined the symbol. (Contributed by David A. Wheeler, 1-Jan-2017.) (New usage is discouraged.) |
| ⊢ ¬ 0 > 0 | ||
| Theorem | ex-gte 51228 | Simple example of ≥, in this case, 0 is greater than or equal to 0. This is useful as an example, and helps us gain confidence that we've correctly defined the symbol. (Contributed by David A. Wheeler, 1-Jan-2017.) (New usage is discouraged.) |
| ⊢ 0 ≥ 0 | ||
It is a convention of set.mm to not use sinh and so on directly, and instead of use expansions such as (cos‘(i · 𝑥)). However, I believe it's important to give formal definitions for these conventional functions as they are typically used, so here they are. A few related identities are also proved. | ||
| Syntax | csinh 51229 | Extend class notation to include the hyperbolic sine function, see df-sinh 51232. |
| class sinh | ||
| Syntax | ccosh 51230 | Extend class notation to include the hyperbolic cosine function. see df-cosh 51233. |
| class cosh | ||
| Syntax | ctanh 51231 | Extend class notation to include the hyperbolic tangent function, see df-tanh 51234. |
| class tanh | ||
| Definition | df-sinh 51232 | Define the hyperbolic sine function (sinh). We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). See sinhval-named 51235 for a simple way to evaluate it. We define this function by dividing by i, which uses fewer operations than many conventional definitions (and thus is more convenient to use in set.mm). See sinh-conventional 51237 for a justification that our definition is the same as the conventional definition of sinh used in other sources. (Contributed by David A. Wheeler, 20-Apr-2015.) |
| ⊢ sinh = (𝑥 ∈ ℂ ↦ ((sin‘(i · 𝑥)) / i)) | ||
| Definition | df-cosh 51233 | Define the hyperbolic cosine function (cosh). We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). (Contributed by David A. Wheeler, 10-May-2015.) |
| ⊢ cosh = (𝑥 ∈ ℂ ↦ (cos‘(i · 𝑥))) | ||
| Definition | df-tanh 51234 | Define the hyperbolic tangent function (tanh). We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). (Contributed by David A. Wheeler, 10-May-2015.) (Revised by Jon Pennant, 22-Oct-2026.) |
| ⊢ tanh = (𝑥 ∈ (◡cosh “ (ℂ ∖ {0})) ↦ ((sinh‘𝑥) / (cosh‘𝑥))) | ||
| Theorem | sinhval-named 51235 | Value of the named sinh function. Here we show the simple conversion to the conventional form used in set.mm, using the definition given by df-sinh 51232. See sinhval 16366 for a theorem to convert this further. See sinh-conventional 51237 for a justification that our definition is the same as the conventional definition of sinh used in other sources. (Contributed by David A. Wheeler, 20-Apr-2015.) |
| ⊢ (𝐴 ∈ ℂ → (sinh‘𝐴) = ((sin‘(i · 𝐴)) / i)) | ||
| Theorem | coshval-named 51236 | Value of the named cosh function. Here we show the simple conversion to the conventional form used in set.mm, using the definition given by df-cosh 51233. See coshval 16367 for a theorem to convert this further. (Contributed by David A. Wheeler, 10-May-2015.) |
| ⊢ (𝐴 ∈ ℂ → (cosh‘𝐴) = (cos‘(i · 𝐴))) | ||
| Theorem | sinh-conventional 51237 | Conventional definition of sinh. Here we show that the sinh definition we're using has the same meaning as the conventional definition used in some other sources. We choose a slightly different definition of sinh because it has fewer operations, and thus is more convenient to manipulate using set.mm. (Contributed by David A. Wheeler, 10-May-2015.) |
| ⊢ (𝐴 ∈ ℂ → (sinh‘𝐴) = ( -i · (sin‘(i · 𝐴)))) | ||
| Theorem | sinhpcosh 51238 | Prove that (sinh‘𝐴) + (cosh‘𝐴) = (exp‘𝐴) using the conventional hyperbolic trigonometric functions. (Contributed by David A. Wheeler, 27-May-2015.) |
| ⊢ (𝐴 ∈ ℂ → ((sinh‘𝐴) + (cosh‘𝐴)) = (exp‘𝐴)) | ||
| Theorem | sinhf 51239 | Domain and codomain of the sinh function. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ sinh:ℂ⟶ℂ | ||
| Theorem | sinhcl 51240 | The closure of the sinh function with complex argument. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝐴 ∈ ℂ → (sinh‘𝐴) ∈ ℂ) | ||
| Theorem | sinh0 51241 | Value of the sinh function at 0. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (sinh‘0) = 0 | ||
| Theorem | sinhneg 51242 | The sinh function is odd. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝐴 ∈ ℂ → (sinh‘ -𝐴) = -(sinh‘𝐴)) | ||
| Theorem | coshf 51243 | Domain and codomain of the cosh function. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ cosh:ℂ⟶ℂ | ||
| Theorem | coshcl 51244 | The closure of the cosh function with complex argument. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝐴 ∈ ℂ → (cosh‘𝐴) ∈ ℂ) | ||
| Theorem | cosh0 51245 | Value of the cosh function at 0. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (cosh‘0) = 1 | ||
| Theorem | coshneg 51246 | The cosh function is even. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝐴 ∈ ℂ → (cosh‘ -𝐴) = (cosh‘𝐴)) | ||
| Theorem | tanhval 51247 | Value of the tanh function in terms of sinh and cosh. (Contributed by Jon Pennant, 22-Oct-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (tanh‘𝐴) = ((sinh‘𝐴) / (cosh‘𝐴))) | ||
| Theorem | tanhvaltan 51248 | Value of the named tanh function. Here we show the simple conversion to the conventional form used in set.mm, using the definition given by df-tanh 51234. (Contributed by David A. Wheeler, 10-May-2015.) (Revised by Jon Pennant, 22-Oct-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (tanh‘𝐴) = ((tan‘(i · 𝐴)) / i)) | ||
| Theorem | tanhf 51249 | Domain and codomain of the tanh function. (Contributed by Jon Pennant, 22-Oct-2026.) |
| ⊢ tanh:(◡cosh “ (ℂ ∖ {0}))⟶ℂ | ||
| Theorem | tanhcl 51250 | The closure of the tanh function with complex argument. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (tanh‘𝐴) ∈ ℂ) | ||
| Theorem | tanh0 51251 | Value of the tanh function at 0. (Contributed by Jon Pennant, 22-Oct-2026.) |
| ⊢ (tanh‘0) = 0 | ||
| Theorem | tanhneg 51252 | The tanh function is odd. (Contributed by Jon Pennant, 22-Oct-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (tanh‘ -𝐴) = -(tanh‘𝐴)) | ||
| Theorem | tanhvalnegitan 51253 | Value of the tanh function in terms of tan and multiplication by -i. (Contributed by Jon Pennant, 22-Oct-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (tanh‘𝐴) = ( -i · (tan‘(i · 𝐴)))) | ||
| Theorem | sinhadd 51254 | Addition formula for sinh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (sinh‘(𝐴 + 𝐵)) = (((sinh‘𝐴) · (cosh‘𝐵)) + ((cosh‘𝐴) · (sinh‘𝐵)))) | ||
| Theorem | coshadd 51255 | Addition formula for cosh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (cosh‘(𝐴 + 𝐵)) = (((cosh‘𝐴) · (cosh‘𝐵)) + ((sinh‘𝐴) · (sinh‘𝐵)))) | ||
| Theorem | sinhsub 51256 | Subtraction formula for sinh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (sinh‘(𝐴 − 𝐵)) = (((sinh‘𝐴) · (cosh‘𝐵)) − ((cosh‘𝐴) · (sinh‘𝐵)))) | ||
| Theorem | coshsub 51257 | Subtraction formula for cosh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (cosh‘(𝐴 − 𝐵)) = (((cosh‘𝐴) · (cosh‘𝐵)) − ((sinh‘𝐴) · (sinh‘𝐵)))) | ||
| Theorem | tanhadd 51258 | Addition formula for tanh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ ((((𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ) ∧ (cosh‘𝐴) ≠ 0) ∧ ((cosh‘𝐵) ≠ 0 ∧ (cosh‘(𝐴 + 𝐵)) ≠ 0)) → (tanh‘(𝐴 + 𝐵)) = (((tanh‘𝐴) + (tanh‘𝐵)) / (1 + ((tanh‘𝐴) · (tanh‘𝐵))))) | ||
| Theorem | tanhaddd 51259 | Addition formula for tanh. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝜑 → 𝐴 ∈ ℂ) & ⊢ (𝜑 → 𝐵 ∈ ℂ) & ⊢ (𝜑 → (cosh‘𝐴) ≠ 0) & ⊢ (𝜑 → (cosh‘𝐵) ≠ 0) & ⊢ (𝜑 → (cosh‘(𝐴 + 𝐵)) ≠ 0) ⇒ ⊢ (𝜑 → (tanh‘(𝐴 + 𝐵)) = (((tanh‘𝐴) + (tanh‘𝐵)) / (1 + ((tanh‘𝐴) · (tanh‘𝐵))))) | ||
| Theorem | coshsinhsq 51260 | The fundamental identity for hyperbolic functions: cosh^2 - sinh^2 = 1. (Contributed by Jon Pennant, 9-Sep-2026.) |
| ⊢ (𝐴 ∈ ℂ → (((cosh‘𝐴)↑2) − ((sinh‘𝐴)↑2)) = 1) | ||
| Theorem | ontanhsq 51261 | Hyperbolic tangent/secant identity: 1 - tanh^2 = sech^2 (or 1 / cosh^2). (Contributed by Jon Pennant, 27-Sep-2026.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cosh‘𝐴) ≠ 0) → (1 − ((tanh‘𝐴)↑2)) = (1 / ((cosh‘𝐴)↑2))) | ||
Define the traditional reciprocal trigonometric functions secant (sec), cosecant (csc), and cotangent (cos), along with various identities involving them. | ||
| Syntax | csec 51262 | Extend class notation to include the secant function, see df-sec 51265. |
| class sec | ||
| Syntax | ccsc 51263 | Extend class notation to include the cosecant function, see df-csc 51266. |
| class csc | ||
| Syntax | ccot 51264 | Extend class notation to include the cotangent function, see df-cot 51267. |
| class cot | ||
| Definition | df-sec 51265* | Define the secant function. We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). The sec function is defined in ISO 80000-2:2009(E) operation 2-13.6 and "NIST Digital Library of Mathematical Functions" section on "Trigonometric Functions" http://dlmf.nist.gov/4.14 5192. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ sec = (𝑥 ∈ {𝑦 ∈ ℂ ∣ (cos‘𝑦) ≠ 0} ↦ (1 / (cos‘𝑥))) | ||
| Definition | df-csc 51266* | Define the cosecant function. We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). The csc function is defined in ISO 80000-2:2009(E) operation 2-13.7 and "NIST Digital Library of Mathematical Functions" section on "Trigonometric Functions" http://dlmf.nist.gov/4.14 5192. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ csc = (𝑥 ∈ {𝑦 ∈ ℂ ∣ (sin‘𝑦) ≠ 0} ↦ (1 / (sin‘𝑥))) | ||
| Definition | df-cot 51267* | Define the cotangent function. We define it this way for cmpt 5192, which requires the form (𝑥 ∈ 𝐴 ↦ 𝐵). The cot function is defined in ISO 80000-2:2009(E) operation 2-13.5 and "NIST Digital Library of Mathematical Functions" section on "Trigonometric Functions" http://dlmf.nist.gov/4.14 5192. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ cot = (𝑥 ∈ {𝑦 ∈ ℂ ∣ (sin‘𝑦) ≠ 0} ↦ ((cos‘𝑥) / (sin‘𝑥))) | ||
| Theorem | secval 51268 | Value of the secant function. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cos‘𝐴) ≠ 0) → (sec‘𝐴) = (1 / (cos‘𝐴))) | ||
| Theorem | cscval 51269 | Value of the cosecant function. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (csc‘𝐴) = (1 / (sin‘𝐴))) | ||
| Theorem | cotval 51270 | Value of the cotangent function. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (cot‘𝐴) = ((cos‘𝐴) / (sin‘𝐴))) | ||
| Theorem | seccl 51271 | The closure of the secant function with a complex argument. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cos‘𝐴) ≠ 0) → (sec‘𝐴) ∈ ℂ) | ||
| Theorem | csccl 51272 | The closure of the cosecant function with a complex argument. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (csc‘𝐴) ∈ ℂ) | ||
| Theorem | cotcl 51273 | The closure of the cotangent function with a complex argument. (Contributed by David A. Wheeler, 15-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (cot‘𝐴) ∈ ℂ) | ||
| Theorem | reseccl 51274 | The closure of the secant function with a real argument. (Contributed by David A. Wheeler, 15-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℝ ∧ (cos‘𝐴) ≠ 0) → (sec‘𝐴) ∈ ℝ) | ||
| Theorem | recsccl 51275 | The closure of the cosecant function with a real argument. (Contributed by David A. Wheeler, 15-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℝ ∧ (sin‘𝐴) ≠ 0) → (csc‘𝐴) ∈ ℝ) | ||
| Theorem | recotcl 51276 | The closure of the cotangent function with a real argument. (Contributed by David A. Wheeler, 15-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℝ ∧ (sin‘𝐴) ≠ 0) → (cot‘𝐴) ∈ ℝ) | ||
| Theorem | recsec 51277 | The reciprocal of secant is cosine. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cos‘𝐴) ≠ 0) → (cos‘𝐴) = (1 / (sec‘𝐴))) | ||
| Theorem | reccsc 51278 | The reciprocal of cosecant is sine. (Contributed by David A. Wheeler, 14-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (sin‘𝐴) = (1 / (csc‘𝐴))) | ||
| Theorem | reccot 51279 | The reciprocal of cotangent is tangent. (Contributed by David A. Wheeler, 21-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0 ∧ (cos‘𝐴) ≠ 0) → (tan‘𝐴) = (1 / (cot‘𝐴))) | ||
| Theorem | rectan 51280 | The reciprocal of tangent is cotangent. (Contributed by David A. Wheeler, 21-Mar-2014.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0 ∧ (cos‘𝐴) ≠ 0) → (cot‘𝐴) = (1 / (tan‘𝐴))) | ||
| Theorem | sec0 51281 | The value of the secant function at zero is one. (Contributed by David A. Wheeler, 16-Mar-2014.) |
| ⊢ (sec‘0) = 1 | ||
| Theorem | onetansqsecsq 51282 | Prove the tangent squared secant squared identity (1 + ((tan‘𝐴)↑2)) = ((sec‘𝐴)↑2)). (Contributed by David A. Wheeler, 25-May-2015.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (cos‘𝐴) ≠ 0) → (1 + ((tan‘𝐴)↑2)) = ((sec‘𝐴)↑2)) | ||
| Theorem | cotsqcscsq 51283 | Prove the tangent squared cosecant squared identity (1 + ((cot‘𝐴)↑2)) = ((csc‘𝐴)↑2)). (Contributed by David A. Wheeler, 27-May-2015.) |
| ⊢ ((𝐴 ∈ ℂ ∧ (sin‘𝐴) ≠ 0) → (1 + ((cot‘𝐴)↑2)) = ((csc‘𝐴)↑2)) | ||
| Theorem | dvsec 51284 | Derivative of the secant function. (Contributed by Jon Pennant, 28-Aug-2026.) |
| ⊢ (ℂ D sec) = (𝑥 ∈ dom sec ↦ ((sec‘𝑥) · (tan‘𝑥))) | ||
| Theorem | dvcsc 51285 | Derivative of the cosecant function. (Contributed by Jon Pennant, 28-Aug-2026.) |
| ⊢ (ℂ D csc) = (𝑥 ∈ dom csc ↦ ( -(csc‘𝑥) · (cot‘𝑥))) | ||
| Theorem | dvcot 51286 | Derivative of the cotangent function. (Contributed by Jon Pennant, 28-Aug-2026.) |
| ⊢ (ℂ D cot) = (𝑥 ∈ dom cot ↦ -((csc‘𝑥)↑2)) | ||
Utility theorems for "if". | ||
| Theorem | ifnmfalse 51287 | If A is not a member of B, but an "if" condition requires it, then the "false" branch results. This is a simple utility to provide a slight shortening and simplification of proofs versus applying iffalse 4494 directly in this case. (Contributed by David A. Wheeler, 15-May-2015.) |
| ⊢ (𝐴 ∉ 𝐵 → if(𝐴 ∈ 𝐵, 𝐶, 𝐷) = 𝐷) | ||
Most of this subsection was moved to main set.mm, section "Logarithms to an arbitrary base". | ||
| Theorem | logb2aval 51288 | Define the value of the logb function, the logarithm generalized to an arbitrary base, when used in the 2-argument form logb 〈𝐵, 𝑋〉 (Contributed by David A. Wheeler, 21-Jan-2017.) (Revised by David A. Wheeler, 16-Jul-2017.) |
| ⊢ ((𝐵 ∈ (ℂ ∖ {0, 1}) ∧ 𝑋 ∈ (ℂ ∖ {0})) → ( logb ‘〈𝐵, 𝑋〉) = ((log‘𝑋) / (log‘𝐵))) | ||
Define "log using an arbitrary base" function and then prove some of its properties. This builds on previous work by Stefan O'Rear. This supports the notational form ((log_‘𝐵)‘𝑋); that looks a little more like traditional notation, but is different from other 2-parameter functions. E.g., ((log_‘;10)‘;;100) = 2. This form is less convenient to work with inside set.mm as compared to the (𝐵 logb 𝑋) form defined separately. | ||
| Syntax | clog- 51289 | Extend class notation to include the logarithm generalized to an arbitrary base. |
| class log_ | ||
| Definition | df-logbALT 51290* | Define the log_ operator. This is the logarithm generalized to an arbitrary base. It can be used as ((log_‘𝐵)‘𝑋) for "log base B of X". This formulation suggested by Mario Carneiro. (Contributed by David A. Wheeler, 14-Jul-2017.) (New usage is discouraged.) |
| ⊢ log_ = (𝑏 ∈ (ℂ ∖ {0, 1}) ↦ (𝑥 ∈ (ℂ ∖ {0}) ↦ ((log‘𝑥) / (log‘𝑏)))) | ||
EXPERIMENTAL. Several terms are used in comments but not directly defined in set.mm. For example, there are proofs that a number of specific relations are reflexive, but there is no formal definition of what being reflexive actually *means*. Stating the relationships directly, instead of defining a broader property such as being reflexive, can reduce proof size (because the definition of that property does not need to be expanded later). A disadvantage, however, is that there are several terms that are widely used in comments but do not have a clear formal definition. Here we define wffs that formally define some of these key terms. The intent isn't to use these directly, but to instead provide a clear formal definition of widely-used mathematical terminology (we even use this terminology within the comments of set.mm itself). We could define these using extensible structures, but doing so appears overly restrictive. These definitions don't require the use of extensible structures; requiring something to be in an extensible structure to use them is too restrictive. Even if an extensible structure is already in use, it may in use for other things. For example, in geometry, there is a "less-than" relation, but while the geometry itself is an extensible structure, we would have to build a new structure to state "the geometric less-than relation is transitive" (which is more work than it's probably worth). By creating definitions that aren't tied to extensible structures we create definitions that can be applied to anything, including extensible structures, in whatever way we'd like. BJ suggests that it might be better to define these as functions. There are many advantages to doing that, but they won't work for proper classes. I'm currently trying to also support proper classes, so I have not taken that approach, but if that turns out to be unreasonable then BJ's approach is very much worth considering. Examples would be: BinRel = (𝑥 ∈ V ↦ {𝑟 ∣ 𝑟 ⊆ (𝑥 × 𝑥)}), ReflBinRel = (𝑥 ∈ V ↦ {𝑟 ∈ ( BinRel ‘𝑥) ∣ ( I ↾ 𝑥) ⊆ 𝑟}), and IrreflBinRel = (𝑥 ∈ V ↦ {𝑟 ∈ ( BinRel ‘𝑥) ∣ (𝑟 ∩ ( I ↾ 𝑥)) = ∅}). For more discussion see: https://github.com/metamath/set.mm/pull/1286 | ||
| Syntax | wreflexive 51291 | Extend wff definition to include "Reflexive" applied to a class, which is true iff class R is a reflexive relation over the set A. See df-reflexive 51292. (Contributed by David A. Wheeler, 1-Dec-2019.) |
| wff 𝑅 Reflexive 𝐴 | ||
| Definition | df-reflexive 51292* | Define reflexive relation; relation 𝑅 is reflexive over the set 𝐴 iff ∀𝑥 ∈ 𝐴𝑥𝑅𝑥. (Contributed by David A. Wheeler, 1-Dec-2019.) |
| ⊢ (𝑅 Reflexive 𝐴 ↔ (𝑅 ⊆ (𝐴 × 𝐴) ∧ ∀𝑥 ∈ 𝐴 𝑥𝑅𝑥)) | ||
| Syntax | wirreflexive 51293 | Extend wff definition to include "Irreflexive" applied to a class, which is true iff class R is an irreflexive relation over the set A. See df-irreflexive 51294. (Contributed by David A. Wheeler, 1-Dec-2019.) |
| wff 𝑅 Irreflexive 𝐴 | ||
| Definition | df-irreflexive 51294* | Define irreflexive relation; relation 𝑅 is irreflexive over the set 𝐴 iff ∀𝑥 ∈ 𝐴¬ 𝑥𝑅𝑥. Note that a relation can be neither reflexive nor irreflexive. (Contributed by David A. Wheeler, 1-Dec-2019.) |
| ⊢ (𝑅 Irreflexive 𝐴 ↔ (𝑅 ⊆ (𝐴 × 𝐴) ∧ ∀𝑥 ∈ 𝐴 ¬ 𝑥𝑅𝑥)) | ||
This is an experimental approach to make it clearer (and easier) to do basic algebra in set.mm. These little theorems support basic algebra on equations at a slightly higher conceptual level. Instead of always having to "build up" equivalent expressions for one side of an equation, these theorems allow you to directly manipulate an equality. These higher-level steps lead to easier to understand proofs when they can be used, as well as proofs that are slightly shorter (when measured in steps). There are disadvantages. In particular, this approach requires many theorems (for many permutations to provide all of the operations). It can also only handle certain cases; more complex approaches must still be approached by "building up" equalities as is done today. However, I expect that we can create enough theorems to make it worth doing. I'm trying this out to see if this is helpful and if the number of permutations is manageable. To commute LHS for addition, use addcomli 11541. We might want to switch to a naming convention like addcomli 11541. | ||
| Theorem | mvlraddi 51295 | Move the right term in a sum on the LHS to the RHS. (Contributed by David A. Wheeler, 11-Oct-2018.) |
| ⊢ 𝐴 ∈ ℂ & ⊢ 𝐵 ∈ ℂ & ⊢ (𝐴 + 𝐵) = 𝐶 ⇒ ⊢ 𝐴 = (𝐶 − 𝐵) | ||
| Theorem | assraddsubi 51296 | Associate RHS addition-subtraction. (Contributed by David A. Wheeler, 11-Oct-2018.) |
| ⊢ 𝐵 ∈ ℂ & ⊢ 𝐶 ∈ ℂ & ⊢ 𝐷 ∈ ℂ & ⊢ 𝐴 = ((𝐵 + 𝐶) − 𝐷) ⇒ ⊢ 𝐴 = (𝐵 + (𝐶 − 𝐷)) | ||
| Theorem | joinlmuladdmuli 51297 | Join AB+CB into (A+C) on LHS. (Contributed by David A. Wheeler, 26-Oct-2019.) |
| ⊢ 𝐴 ∈ ℂ & ⊢ 𝐵 ∈ ℂ & ⊢ 𝐶 ∈ ℂ & ⊢ ((𝐴 · 𝐵) + (𝐶 · 𝐵)) = 𝐷 ⇒ ⊢ ((𝐴 + 𝐶) · 𝐵) = 𝐷 | ||
| Theorem | joinlmulsubmuld 51298 | Join AB-CB into (A-C) on LHS. (Contributed by David A. Wheeler, 15-Oct-2018.) |
| ⊢ (𝜑 → 𝐴 ∈ ℂ) & ⊢ (𝜑 → 𝐵 ∈ ℂ) & ⊢ (𝜑 → 𝐶 ∈ ℂ) & ⊢ (𝜑 → ((𝐴 · 𝐵) − (𝐶 · 𝐵)) = 𝐷) ⇒ ⊢ (𝜑 → ((𝐴 − 𝐶) · 𝐵) = 𝐷) | ||
| Theorem | joinlmulsubmuli 51299 | Join AB-CB into (A-C) on LHS. (Contributed by David A. Wheeler, 11-Oct-2018.) |
| ⊢ 𝐴 ∈ ℂ & ⊢ 𝐵 ∈ ℂ & ⊢ 𝐶 ∈ ℂ & ⊢ ((𝐴 · 𝐵) − (𝐶 · 𝐵)) = 𝐷 ⇒ ⊢ ((𝐴 − 𝐶) · 𝐵) = 𝐷 | ||
| Theorem | mvlrmuld 51300 | Move the right term in a product on the LHS to the RHS, deduction form. (Contributed by David A. Wheeler, 11-Oct-2018.) |
| ⊢ (𝜑 → 𝐴 ∈ ℂ) & ⊢ (𝜑 → 𝐵 ∈ ℂ) & ⊢ (𝜑 → 𝐵 ≠ 0) & ⊢ (𝜑 → (𝐴 · 𝐵) = 𝐶) ⇒ ⊢ (𝜑 → 𝐴 = (𝐶 / 𝐵)) | ||
| < Previous Next > |
| Copyright terms: Public domain | < Previous Next > |