Proof: Pop At Example

Let's prove the following theorem:

stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = [ 10, [ 14, [ ] ] ]

Proof:

View as a tree | View dependent proofs | Try proving it

Proof Table
# Claim Reason
1 stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ]) stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ])
2 stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ]
3 1 - 1 = 0 1 - 1 = 0
4 stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] if 1 - 1 = 0, then stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ]
5 stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = result of dumping [ 14, [ ] ] to [ 10, [ ] ] stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = result of dumping [ 14, [ ] ] to [ 10, [ ] ]
6 result of dumping [ 14, [ ] ] to [ 10, [ ] ] = [ 14, [ 10, [ ] ] ] result of dumping [ 14, [ ] ] to [ 10, [ ] ] = [ 14, [ 10, [ ] ] ]
7 stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ] if stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = result of dumping [ 14, [ ] ] to [ 10, [ ] ] and result of dumping [ 14, [ ] ] to [ 10, [ ] ] = [ 14, [ 10, [ ] ] ], then stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ]
8 stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ] if stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] and stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index 0 in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ], then stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ]
9 stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = [ 14, [ 10, [ ] ] ] if stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] and stack after popping a value from stack [ 12, [ 14, [ ] ] ] at index (1 - 1) in traversed elements: [ 10, [ ] ] = [ 14, [ 10, [ ] ] ], then stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = [ 14, [ 10, [ ] ] ]
10 reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ]) = reverse of [ 14, [ 10, [ ] ] ] if stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ] = [ 14, [ 10, [ ] ] ], then reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ]) = reverse of [ 14, [ 10, [ ] ] ]
11 stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of [ 14, [ 10, [ ] ] ] if stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ]) and reverse of (stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 in traversed elements: [ ]) = reverse of [ 14, [ 10, [ ] ] ], then stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of [ 14, [ 10, [ ] ] ]
12 reverse of [ 14, [ 10, [ ] ] ] = [ 10, [ 14, [ ] ] ] reverse of [ 14, [ 10, [ ] ] ] = [ 10, [ 14, [ ] ] ]
13 stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = [ 10, [ 14, [ ] ] ] if stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = reverse of [ 14, [ 10, [ ] ] ] and reverse of [ 14, [ 10, [ ] ] ] = [ 10, [ 14, [ ] ] ], then stack after popping a value from stack [ 10, [ 12, [ 14, [ ] ] ] ] at index 1 = [ 10, [ 14, [ ] ] ]

Comments

Please log in to add comments