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, 4], [2, 4, 3]) | |||
| = 2 == 2 and isPrefix([3, 4], [4, 3]) | by (isPrefix.3) | ||
| = true and isPrefix([3,4], [4,3]) | |||
| = isPrefix([3,4], [4,3]) | |||
| = 3 ==4 and isPrefix([4], [3]) | by (isPrefix.3) | ||
| = false and isPrefix([4], [3]) | |||
| = false | |||