The induction command is applicable to a name in a goal, where the name refers to anything defined in a free type paragraph. It makes the induction constraint implied by the free type paragraph available as an antecedent in the sub-goal.
Given the general form of a free type,
f1 ::= h1,1 ... h1,m1 | g1,1 ![]() ![]() ![]() ![]() |
& ... & |
fr ::= hr,1 ... hr,mr | gr,1 ![]() ![]() ![]() ![]() |
the induction constraint for a free type paragraph is
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
"induction" e1 e2
This example applies the induction command to expressions e1 and e2.