Here are the equations for reference.
| (isPrefix.1) | isPrefix([ ], B) | = | true | |
| (isPrefix.2) | isPrefix(A, [ ]) | = | false | (when A is not [ ]) |
| (isPrefix.3) | isPrefix(A, B) | = | head(A) == head(B) and isPrefix(tail(A), tail(B)) | (when A ≠ [ ] and B ≠ [ ]) |
Evaluation is as follows.
| isPrefix([2, 3], [2]) | |||
| = 2 == 2 and isPrefix([3], [ ]) | by (isPrefix.3) | ||
| = true and isPrefix([3], [ ]) | |||
| = isPrefix([3], [ ]) | |||
| = isPrefix(3 : [ ], [ ]) | |||
| = false | by (isPrefix.2) | ||