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