@@ -479,101 +479,7 @@ \section{Symbolic Reasoning\label{sec:Symbolic Reasoning}}
479479for cases where a binary operation involves two \rangeconstraintsterm .
480480\ASLListing {Generating constraints for binary operations}{ApplyBinopExtremities}{\typingtests /TypingRule.ApplyBinopExtremities.asl}
481481
482- \ProseParagraph
483- \OneApplies
484- \begin {itemize }
485- \item \AllApplyCase {exact\_ exact}
486- \begin {itemize }
487- \item $ \vcone $ is a constraint for the expression $ \va $ ;
488- \item $ \vctwo $ is a constraint for the expression $ \vc $ ;
489- \item define $ \newcs $ as the list containing the constraint for the \binopexpressionterm {} $ \AbbrevEBinop {\op }{\va }{\vc }$ .
490- \end {itemize }
491-
492- \item \AllApplyCase {range\_ exact}
493- \begin {itemize }
494- \item $ \vcone $ is a range constraint for the expressions $ \va $ and $ \vb $ ;
495- \item $ \vctwo $ is a constraint for the expression $ \vc $ ;
496- \item applying $ \possibleextremitiesleft $ to $ \op $ , $ \va $ , and $ \vb $ yields $ \extpairs $ ;
497- \item define $ \newcs $ as the list containing a constraint $ \AbbrevConstraintRange {\AbbrevEBinop {\op }{\vap }{\vc }}{\AbbrevEBinop {\op }{\vbp }{\vc }}$
498- for each pair of expressions $ (\vap , \vbp )$ in $ \extpairs $ .
499- \end {itemize }
500-
501- \item \AllApplyCase {exact\_ range}
502- \begin {itemize }
503- \item $ \vcone $ is a constraint for the expression $ \va $ ;
504- \item $ \vctwo $ is a range constraint for the expressions $ \vc $ and $ \vd $ ;
505- \item applying $ \possibleextremitiesright $ to $ \op $ , $ \vc $ , and $ \vd $ yields $ \extpairs $ ;
506- \item define $ \newcs $ as the list containing a constraint $ \AbbrevConstraintRange {\AbbrevEBinop {\op }{\va }{\vcp }}{\AbbrevEBinop {\op }{\va }{\vdp }}$
507- for each pair of expressions $ (\vcp , \vdp )$ in $ \extpairs $ .
508- \end {itemize }
509-
510- \item \AllApplyCase {range\_ range}
511- \begin {itemize }
512- \item $ \vcone $ is a range constraint for the expressions $ \va $ and $ \vb $ ;
513- \item $ \vctwo $ is a range constraint for the expressions $ \vc $ and $ \vd $ ;
514- \item applying $ \possibleextremitiesleft $ to $ \op $ , $ \va $ , and $ \vb $ yields $ \extpairsab $ ;
515- \item applying $ \possibleextremitiesright $ to $ \op $ , $ \vc $ , and $ \vd $ yields $ \extpairscd $ ;
516- \item define $ \newcs $ as the list containing a constraint $ \AbbrevConstraintRange {\AbbrevEBinop {\op }{\vap }{\vcp }}{\AbbrevEBinop {\op }{\vbp }{\vdp }}$
517- for each pair of expressions
518- $ (\vap , \vbp )$ in $ \extpairsab $
519- and each pair of expressions
520- $ (\vcp , \vdp )$ in $ \extpairscd $ .
521- \end {itemize }
522- \end {itemize }
523-
524- \FormallyParagraph
525- \begin {mathpar }
526- \inferrule [exact\_ exact]{
527- \vcone = \ConstraintExact (\va )\\
528- \vctwo = \ConstraintExact (\vc )
529- }{
530- {
531- \begin {array }{r}
532- \applybinopextremities (\op , \vcone , \vctwo ) \typearrow \\
533- \overname {[ \ConstraintExact (\AbbrevEBinop {\op }{\va }{\vc }) ]}{\newcs }
534- \end {array }
535- }
536- }
537- \end {mathpar }
538-
539- \begin {mathpar }
540- \inferrule [range\_ exact]{
541- \vcone = \ConstraintRange (\va , \vb )\\
542- \vctwo = \ConstraintExact (\vc )\hva \\
543- \possibleextremitiesleft (\op , \va , \vb ) \typearrow \extpairs \\
544- \newcs \eqdef [(\vap , \vbp ) \in \extpairs : \AbbrevConstraintRange {\AbbrevEBinop {\op }{\vap }{\vc }}{\AbbrevEBinop {\op }{\vbp }{\vc }}]
545- }{
546- \applybinopextremities (\op , \vcone , \vctwo ) \typearrow
547- \newcs
548- }
549- \end {mathpar }
550-
551- \begin {mathpar }
552- \inferrule [exact\_ range]{
553- \vcone = \ConstraintExact (\va )\\
554- \vctwo = \ConstraintRange (\vc , \vd )\hva \\
555- \possibleextremitiesright (\op , \vc , \vd ) \typearrow \extpairs \\
556- \newcs \eqdef [(\vcp , \vdp ) \in \extpairs : \AbbrevConstraintRange {\AbbrevEBinop {\op }{\va }{\vcp }}{\AbbrevEBinop {\op }{\va }{\vdp }}]
557- }{
558- \applybinopextremities (\op , \vcone , \vctwo ) \typearrow
559- \newcs
560- }
561- \end {mathpar }
562-
563- \begin {mathpar }
564- \inferrule [range\_ range]{
565- \vcone = \ConstraintRange (\va , \vb )\\
566- \vctwo = \ConstraintRange (\vc , \vd )\hva \\
567- \possibleextremitiesleft (\op , \va , \vb ) \typearrow \extpairsab \\
568- \possibleextremitiesright (\op , \vc , \vd ) \typearrow \extpairscd\hva \\
569- \newcs \eqdef [(\vap , \vbp ) \in \extpairsab , (\vcp , \vdp ) \in \extpairscd :
570- \AbbrevConstraintRange {\AbbrevEBinop {\op }{\vap }{\vcp }}{\AbbrevEBinop {\op }{\vbp }{\vdp }}]
571- }{
572- \applybinopextremities (\op , \vcone , \vctwo ) \typearrow
573- \newcs
574- }
575- \end {mathpar }
576- % \RenderProseAndFormally{apply_binop_extremities}
482+ \RenderProseAndFormally {apply_binop_extremities}
577483
578484\TypingRuleDef {PossibleExtremitiesLeft}
579485\RenderRelation {possible_extremities_left}
0 commit comments