Module Qcert.Compiler.Lib.QOperators
Require
Import
CompilerRuntime
.
Require
String
.
Require
Ascii
.
Require
Import
ZArith
.
Require
BrandRelation
.
Module
QOperators
(
runtime
:
CompilerRuntime
).
Module
Unary
.
Definition
op
:
Set
:=
UnaryOperators.unary_op
.
Definition
t
:
Set
:=
op
.
Module
ZArith
.
Definition
opabs
:
op
:=
UnaryOperators.OpNatUnary
UnaryOperators.NatAbs
.
Definition
oplog2
:
op
:=
UnaryOperators.OpNatUnary
UnaryOperators.NatLog2
.
Definition
opsqrt
:
op
:=
UnaryOperators.OpNatUnary
UnaryOperators.NatSqrt
.
End
ZArith
.
Module
FloatArith
.
Definition
opfloatneg
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatNeg
.
Definition
opfloatsqrt
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatSqrt
.
Definition
opfloatexp
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatExp
.
Definition
opfloatlog
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatLog
.
Definition
opfloatlog10
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatLog10
.
Definition
opfloatceil
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatCeil
.
Definition
opfloatfloor
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatFloor
.
Definition
opfloatabs
:
op
:=
UnaryOperators.OpFloatUnary
UnaryOperators.FloatAbs
.
End
FloatArith
.
Definition
opidentity
:
op
:=
UnaryOperators.OpIdentity
.
Definition
opneg
:
op
:=
UnaryOperators.OpNeg
.
Definition
oprec
:
String.string
->
op
:=
UnaryOperators.OpRec
.
Definition
opdot
:
String.string
->
op
:=
UnaryOperators.OpDot
.
Definition
oprecremove
:
String.string
->
op
:=
UnaryOperators.OpRecRemove
.
Definition
oprecproject
:
list
String.string
->
op
:=
UnaryOperators.OpRecProject
.
Definition
opbag
:
op
:=
UnaryOperators.OpBag
.
Definition
opsingleton
:
op
:=
UnaryOperators.OpSingleton
.
Definition
opflatten
:
op
:=
UnaryOperators.OpFlatten
.
Definition
opdistinct
:
op
:=
UnaryOperators.OpDistinct
.
Definition
opcount
:
op
:=
UnaryOperators.OpCount
.
Definition
optostring
:
op
:=
UnaryOperators.OpToString
.
Definition
oplength
:
op
:=
UnaryOperators.OpLength
.
Definition
opsubstring
:
Z
->
option
Z
->
op
:=
UnaryOperators.OpSubstring
.
Definition
oplike
:
String.string
->
op
:=
UnaryOperators.OpLike
.
Definition
opleft
:
op
:=
UnaryOperators.OpLeft
.
Definition
opright
:
op
:=
UnaryOperators.OpRight
.
Definition
opbrand
b
:
op
:=
UnaryOperators.OpBrand
b
.
Definition
opunbrand
:
op
:=
UnaryOperators.OpUnbrand
.
Definition
opcast
:
BrandRelation.brands
->
op
:=
UnaryOperators.OpCast
.
Definition
opnatsum
:
op
:=
UnaryOperators.OpNatSum
.
Definition
opnatmin
:
op
:=
UnaryOperators.OpNatMin
.
Definition
opnatmax
:
op
:=
UnaryOperators.OpNatMax
.
Definition
opnatmean
:
op
:=
UnaryOperators.OpNatMean
.
Definition
opfloatofnat
:
op
:=
UnaryOperators.OpFloatOfNat
.
Definition
opfloattruncate
:
op
:=
UnaryOperators.OpFloatTruncate
.
Definition
opfloatsum
:
op
:=
UnaryOperators.OpFloatSum
.
Definition
opfloatmin
:
op
:=
UnaryOperators.OpFloatBagMin
.
Definition
opfloatmax
:
op
:=
UnaryOperators.OpFloatBagMax
.
Definition
opfloatmean
:
op
:=
UnaryOperators.OpFloatMean
.
End
Unary
.
Module
Binary
.
Definition
op
:
Set
:=
BinaryOperators.binary_op
.
Definition
t
:
Set
:=
op
.
Module
ZArith
.
Definition
opplus
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatPlus
.
Definition
opminus
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatMinus
.
Definition
opmult
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatMult
.
Definition
opmin
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatMin
.
Definition
opmax
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatMax
.
Definition
opdiv
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatDiv
.
Definition
oprem
:
op
:=
BinaryOperators.OpNatBinary
BinaryOperators.NatRem
.
End
ZArith
.
Module
FloatArith
.
Definition
opfloatlt
:
op
:=
BinaryOperators.OpFloatCompare
BinaryOperators.FloatLt
.
Definition
opfloatle
:
op
:=
BinaryOperators.OpFloatCompare
BinaryOperators.FloatLe
.
Definition
opfloatplus
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatPlus
.
Definition
opfloatminus
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatMinus
.
Definition
opfloatmult
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatMult
.
Definition
opfloatmin
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatMin
.
Definition
opfloatmax
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatMax
.
Definition
opfloatdiv
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatDiv
.
Definition
opfloatpow
:
op
:=
BinaryOperators.OpFloatBinary
BinaryOperators.FloatPow
.
End
FloatArith
.
Definition
opequal
:
op
:=
BinaryOperators.OpEqual
.
Definition
oprecconcat
:
op
:=
BinaryOperators.OpRecConcat
.
Definition
oprecmerge
:
op
:=
BinaryOperators.OpRecMerge
.
Definition
opand
:
op
:=
BinaryOperators.OpAnd
.
Definition
opor
:
op
:=
BinaryOperators.OpOr
.
Definition
oplt
:
op
:=
BinaryOperators.OpLt
.
Definition
ople
:
op
:=
BinaryOperators.OpLe
.
Definition
opbagunion
:
op
:=
BinaryOperators.OpBagUnion
.
Definition
opbagdiff
:
op
:=
BinaryOperators.OpBagDiff
.
Definition
opbagmin
:
op
:=
BinaryOperators.OpBagMin
.
Definition
opbagmax
:
op
:=
BinaryOperators.OpBagMax
.
Definition
opbagnth
:
op
:=
BinaryOperators.OpBagNth
.
Definition
opcontains
:
op
:=
BinaryOperators.OpContains
.
Definition
opstringconcat
:
op
:=
BinaryOperators.OpStringConcat
.
Definition
opstringjoin
:
op
:=
BinaryOperators.OpStringJoin
.
End
Binary
.
End
QOperators
.