syntax
syntax
#:instance([field-nameis-atype-descriptor]...+)#:certificatetype-descriptor)
(create-x-instance([field-nameexpr]...))
(define/x-instanceid([field-nameexpr]...))
The field accessors for each field of an instance, which are just the field-names.
(define-x-verifierinst-argcert-argbody...+)
type-descriptor
( natural maybe-length)
maybe-length =| #:cardinal| #:numeric
#:cardinal specifies that the value is encoded in unary. Hence, the numeric value of the number is polynomial to the input size.
#:numeric specifies that the value is encoded in binary. Hence, the numeric value of the number is exponential to the the input size. To guarantee a reduction runs in polynomial time to the input size, certain operations are not allowed on such numbers.
When not specified, #:cardinal is assumed by default.
type-descriptor
type-descriptor
type-descriptor / procedure
( set maybe-element-typemaybe-size)
maybe-element-type =| #:of-typeelement-typemaybe-size =| #:sizesizeelement-type : type-descriptor?size : value-descriptor?Natural?
type-descriptor: When maybe-element-type is not specified, there is no restriction on the element type of the set.
procedure: create a set with elements e ... .
NOT available inside verifier definitions
type-descriptor
( subset-of supersetmaybe-size)
maybe-size =| #:sizenatural-number| #:sizevalue-descriptorsuperset : value-descriptor?Set?
type-descriptor
( element-of a-set)
a-set : value-descriptor?Set?
value-descriptor
( the-set-of a-type)
a-type : type-descriptor?
procedure
( set-∈ eS)→boolean?
e:anyS:set?
procedure
( set-∉ eS)→boolean?
e:anyS:set?
procedure
( set-size S)→natural?
S:set?
procedure
( set-∩ S...+)→set?
S:set?
procedure
( set-∪ S...+)→set?
S:set?
procedure
( set-minus S1S2)→set?
S1:set?S2:set?
syntax
( ∀ [x∈X]pred-x)
X : set?pred-x : boolean-expression?
syntax
( ∃ [x∈X]pred-x)
X : set?pred-x : boolean-expression?
syntax
( ∃<=1 [x∈X]pred-x)
X : set?pred-x : boolean-expression?
syntax
( ∃=1 [x∈X]pred-x)
X : set?pred-x : boolean-expression?
syntax
( sum val-xfor[x∈X]maybe-condition)
maybe-condition =| ifpred-xX : set?val-x : interger-expression?pred-x : boolean-expression?
Calculate \sum_{x \in X , P(x)}f(x) where the expression val-x of x is f(x) and the expression pred-x of x is P(x).
syntax
( max val-xfor[x∈X]maybe-condition)
maybe-condition =| ifpred-xX : set?val-x : interger-expression?pred-x : boolean-expression?
Calculate \max_{x \in X , P(x)}\{f(x)\} where the expression val-x of x is f(x) and the expression pred-x of x is P(x).
syntax
( min val-xfor[x∈X]maybe-condition)
maybe-condition =| ifpred-xX : set?val-x : interger-expression?pred-x : boolean-expression?
Calculate \min_{x \in X , P(x)}\{f(x)\} where the expression val-x of x is f(x) and the expression pred-x of x is P(x).
type-descriptor
( tuple field-type...+)
field-type = #:field-typetypetype : type-descriptor?
procedure
( tpl e...+)→tuple?
e:any
NOT available in verifier definitions
procedure
( fst t)→any
t:tuple?
procedure
( snd t)→any
t:tuple?
procedure
( trd t)→any
t:tuple?
procedure
( frh t)→any
t:tuple?
procedure
( ffh t)→any
t:tuple?
procedure
( n-th tn)→any
t:tuple?n:natural?