CADiZ

Reference manual / Z-related commands / Proof rule commands / injectivity


The injectivity command is applicable to a name in a goal, where the name refers to an injection of a free type. It makes the injectivity constraint implied by the free type available as an antecedent in the sub-goal.

Given the general form of a free type,

f1 ::= h1,1 ... h1,m1 | g1,1 \ldata e1,1 \rdata ... g1,n \ldata e1,n \rdata
& ... &
fr ::= hr,1 ... hr,mr | gr,1 \ldata er,1 \rdata ... gr,nr \ldata er,nr \rdata

the injectivity constraint for an injection is

\forall x, y : ei,k | gi,k x = gi,k y @ x = y

Tactic example

"injectivity" e1 e2

This example applies the injectivity command to expressions e1 and e2.


IT 19-Feb-1999