From b7c1ff6b90f066a976e0555ea0c6f0bd06fa027c Mon Sep 17 00:00:00 2001 From: Hanna Lachnitt <lachnitt@stanford.edu> Date: Thu, 23 May 2024 20:41:38 -0700 Subject: [PATCH] Add draft for la mult rules --- spec/rule_list.tex | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/spec/rule_list.tex b/spec/rule_list.tex index 200fb46..f66db1e 100644 --- a/spec/rule_list.tex +++ b/spec/rule_list.tex @@ -51,6 +51,8 @@ to quickly find the definition of rules. \ruleref{la_disequality} & $t_1 ≈ t_2 \lor \neg (t_1 \leq t_2) \lor \neg (t_2 \leq t_1)$ \\ \ruleref{la_totality} & $t_1 \leq t_2 \lor t_2 \leq t_1$ \\ \ruleref{la_tautology} & A trivial linear tautology. \\ +\ruleref{la_mult_pos} & Multiplication with a positive factor. \\ +\ruleref{la_mult_neg} & Multiplication with a negative factor.\\ \ruleref{forall_inst} & Quantifier instantiation. \\ \ruleref{refl} & Reflexivity after applying the context. \\ \ruleref{eq_reflexive} & $t ≈ t$ without context. \\ @@ -111,6 +113,8 @@ to quickly find the definition of rules. \ruleref{la_disequality} & $t_1 ≈ t_2 \lor \neg (t_1 \leq t_2) \lor \neg (t_2 \leq t_1)$ \\ \ruleref{la_totality} & $t_1 \leq t_2 \lor t_2 \leq t_1$ \\ \ruleref{la_tautology} & A trivial linear tautology. \\ +\ruleref{la_mult_pos} & Multiplication with a positive factor. \\ +\ruleref{la_mult_neg} & Multiplication with a negative factor.\\ \ruleref{la_rw_eq} & $(t ≈ u) ≈ (t \leq u \land u \leq t)$ \\ \ruleref{div_simplify} & Simplification of division. \\ \ruleref{prod_simplify} & Simplification of products. \\ @@ -542,6 +546,71 @@ The inequalities $s_1 \bowtie d$ are the result of applying normalization as for the rule \proofRule{la_generic}. \end{RuleDescription} +\begin{RuleDescription}{la_mult_pos} + +Either of the form: + + \begin{AletheX} + $i$. & \ctxsep & + $(t_1 > 0 \wedge t_2 \bowtie t_3) \to t_1 * t_2 \bowtie t_1 * t_3$ + & (\currule) \\ + \end{AletheX} + +with $\bowtie \in \{<,>, \le,\ge, ≈\}$.\\ + +\noindent Or of the form: + +\begin{AletheX} + $i$. & \ctxsep & + $(t_1 > 0 \wedge \neg (t_2 ≈ t_3)) \to \neg (t_1 * t_2 ≈ t_1 * t_3)$ + & (\currule) \\ +\end{AletheX} + +\end{RuleDescription} + +\begin{RuleDescription}{la_mult_neg} + +Either of the form: + + \begin{AletheX} + $i$. & \ctxsep & + $(t_1 < 0 \wedge t_2 \bowtie t_3) \to t_1 * t_2 \bowtie_{inv} t_1 * t_3$ + & (\currule) \\ + \end{AletheX} + + with $\bowtie \in \{<,>, \le,\ge, ≈\}$ and $\bowtie_{inv}$ being defined according to the following table. + + \begin{center} + \begin{tabular}{|c | c|} + \hline + $\bowtie$ & $\bowtie_{inv}$ is defined as: \\ + \hline + $ < $ & $ > $ \\ + $ \le $ & $ \ge $ \\ + $ ≈ $ & $ ≈ $ \\ + $ > $ & $ < $ \\ + $ \ge $ & $ \le $ \\ + \hline + \end{tabular} + \end{center} + +\noindent Or of the form: + + \begin{AletheX} + $i$. & \ctxsep & + $(t_1 < 0 \wedge \neg (t_2 ≈ t_3)) \to \neg (t_1 * t_2 ≈ t_1 * t_3)$ + & (\currule) \\ + \end{AletheX} + . +\end{RuleDescription} + +\begin{RuleDescription}{la_totality} + \begin{AletheX} + $i$. & \ctxsep & $t_1 \leq t_2 \lor t_2 \leq t_1$ & (\currule) \\ + \end{AletheX} +\end{RuleDescription} + + \begin{RuleDescription}{bind} The \currule{} rule is used to rename bound variables. -- GitLab