struct

Int

Inherits Comparable < Comparable < Comparable < Number < Comparable < Steppable < Comparable < Value < Object

Ruby gets 2 + expr from Integer#coerce. Crystal has no such protocol, so every reversed operator has to be spelled out - one per Crystal type which can be cast into the sort on the other side.

Instance methods

!=(other : Z3::IntExpr)
Source
!=(other : Z3::RealExpr)
Source
+(other : Z3::BitvecExpr)

A Bitvec literal takes its size from the expression it's paired with, and the comparisons are all sign-dependent, so they're #signed_lt and friends only

Source
<=(other : Z3::IntExpr)
Source
<=(other : Z3::RealExpr)
Source
==(other : Z3::IntExpr)
Source
==(other : Z3::RealExpr)
Source
==(other : Z3::FloatExpr)

A Float literal takes its sort from the expression it's paired with. There's no arithmetic here because Float arithmetic needs a rounding mode, so it's spelled expr.add(1.5, mode) and never 1.5 + expr.

Source
>=(other : Z3::IntExpr)
Source
>=(other : Z3::RealExpr)
Source