From 66a54e876d6b541000f1ba5c32770c1b49df28e1 Mon Sep 17 00:00:00 2001 From: dharmatech Date: Mon, 11 Nov 2019 19:02:18 -0600 Subject: [PATCH] tactics.rst: typo --- tactics.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tactics.rst b/tactics.rst index 072b39e..86e08b9 100644 --- a/tactics.rst +++ b/tactics.rst @@ -1220,7 +1220,7 @@ Moreover, you can use a "wildcard" asterisk to simplify all the hypotheses and t p (y + 0 + x) ∧ p (z * x) := by { simp at *, split; assumption } -For operations that are commutative and associative, like multiplication on the natural numbers, the simplifier uses these two facts to rewrite an expression, as well as *left commutativity*. In the case of multiplication the latter is expressed as follows: ``x * (y * z) = y * (x * z)``. The ``local attribute`` command tells the simplifier to use these rules in the current file (or section or namespace, as the case may be). It may seem that commutativity and left-commutativity are problematic, in that repeated application of either causes looping. But the simplifier detects identities that permute their arguments, and uses a technique known as *ordered rewriting*. This means that that the system maintains an internal ordering of terms, and only applies the identity if doing so decreases the order. With the three identities mentioned above, this has the effect that all the parentheses in an expression are associated to the right, and the expressions are ordered in a canonical (though somewhat arbitrary) way. Two expressions that are equivalent up to associativity and commutativity are then rewritten to the same canonical form. +For operations that are commutative and associative, like multiplication on the natural numbers, the simplifier uses these two facts to rewrite an expression, as well as *left commutativity*. In the case of multiplication the latter is expressed as follows: ``x * (y * z) = y * (x * z)``. The ``local attribute`` command tells the simplifier to use these rules in the current file (or section or namespace, as the case may be). It may seem that commutativity and left-commutativity are problematic, in that repeated application of either causes looping. But the simplifier detects identities that permute their arguments, and uses a technique known as *ordered rewriting*. This means that the system maintains an internal ordering of terms, and only applies the identity if doing so decreases the order. With the three identities mentioned above, this has the effect that all the parentheses in an expression are associated to the right, and the expressions are ordered in a canonical (though somewhat arbitrary) way. Two expressions that are equivalent up to associativity and commutativity are then rewritten to the same canonical form. .. code-block:: lean