<commit_before># Example steps for AVMDemoStackMachine

These are example steps for the demo stack machine, that are expected to validate. Each line can be passed to validateStep. While this validates each step individually, we have used steps that would follow on from each other (outputs of each step are the inputs of the next step).

## PUSH - PUSH - ADD Sequence

### Step 1: (Pushes 0x01234567)

```
[0,"0x0000002000000140000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000"],[0,"0x0000002000000140000000000000000000000000000000000000000000000000","0x000000200000013c000000000000000000000000000000000000000000000000",9,0,"0x01234567",0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x000000250000013c000000000000000000000000000000000000000000000000"]
```

### Step 2: (Pushes 0x76543210)

```
[0,"0x000000250000013c000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000"],[0,"0x000000250000013c000000000000000000000000000000000000000000000000","0x0000002500000138000000000000000000000000000000000000000000000000",9,"0x01234567","0x7654321001234567",0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002a00000138000000000000000000000000000000000000000000000000"]
```

### Step 3: (Adds, result expected 0x77777777)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321077777777",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

## Alternate third steps after PUSH - PUSH:

### Step 3a: (Subtracts, result expected 0x7530eca9)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321006000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x765432107530eca9",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3b: (AND, result expected 0)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321007000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321000000000",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3c: (OR, result expected 0x77777777)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321008000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321077777777",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3d: (NOT, result expected 0x89abcdef at stack top, sp unchanged)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321009000000000000000000000000000000000000000000",9,"0x7654321001234567"],[9,"0x7654321001234567","0x89abcdef01234567",0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002b00000138000000000000000000000000000000000000000000000000"]
```

## Conditional jump not taken


### Step 1: (Pushes 0x01010101)

```
[0,"0x0000002000000140000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x0000002000000140000000000000000000000000000000000000000000000000","0x000000200000013c000000000000000000000000000000000000000000000000",9,0,"0x01010101",0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x000000250000013c000000000000000000000000000000000000000000000000"]
```

### Step 1: (Pushes 0x01234567)

```
[0,"0x000000250000013c000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x0000002000000138000000000000000000000000000000000000000000000000",9,"0x01010101","0x0123456701010101",0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002a00000138000000000000000000000000000000000000000000000000"]
```

### Step 2: (Pushes 0x76543210)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002500000134000000000000000000000000000000000000000000000000",9,"0x0123456701010101","0x765432100123456701010101",0,"0x0000002a00000134000000000000000000000000000000000000000000000000","0x0000002f00000134000000000000000000000000000000000000000000000000"]
```

### Step 3: (Subtracts, result expected 0x7530eca9)

```
[0,"0x0000002f00000134000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000",9,"0x765432100123456701010101"],[0,"0x0000002f00000134000000000000000000000000000000000000000000000000","0x0000002f00000138000000000000000000000000000000000000000000000000",9,"0x765432100123456701010101","0x765432107530eca901010101",0,"0x0000002f00000138000000000000000000000000000000000000000000000000","0x0000003000000138000000000000000000000000000000000000000000000000"]
```

### Step 4: (JZ, Pops two stack entries, no jump)
<commit_msg>Update example_stack_machine_steps.md<commit_after># Example steps for AVMDemoStackMachine

These are example steps for the demo stack machine, that are expected to validate. Each line can be passed to validateStep. While this validates each step individually, we have used steps that would follow on from each other (outputs of each step are the inputs of the next step).

## PUSH - PUSH - ADD Sequence

### Step 1: (Pushes 0x01234567)

```
[0,"0x0000002000000140000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000"],[0,"0x0000002000000140000000000000000000000000000000000000000000000000","0x000000200000013c000000000000000000000000000000000000000000000000",9,0,"0x01234567",0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x000000250000013c000000000000000000000000000000000000000000000000"]
```

### Step 2: (Pushes 0x76543210)

```
[0,"0x000000250000013c000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000"],[0,"0x000000250000013c000000000000000000000000000000000000000000000000","0x0000002500000138000000000000000000000000000000000000000000000000",9,"0x01234567","0x7654321001234567",0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002a00000138000000000000000000000000000000000000000000000000"]
```

### Step 3: (Adds, result expected 0x77777777)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321005000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321077777777",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

## Alternate third steps after PUSH - PUSH:

### Step 3a: (Subtracts, result expected 0x7530eca9)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321006000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x765432107530eca9",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3b: (AND, result expected 0)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321007000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321000000000",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3c: (OR, result expected 0x77777777)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321008000000000000000000000000000000000000000000",9,"0x7654321001234567"],[0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002a0000013c000000000000000000000000000000000000000000000000",9,"0x7654321001234567","0x7654321077777777",0,"0x0000002a0000013c000000000000000000000000000000000000000000000000","0x0000002b0000013c000000000000000000000000000000000000000000000000"]
```

### Step 3d: (NOT, result expected 0x89abcdef at stack top, sp unchanged)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x0101234567017654321009000000000000000000000000000000000000000000",9,"0x7654321001234567"],[9,"0x7654321001234567","0x89abcdef01234567",0,"0x0000002a00000138000000000000000000000000000000000000000000000000","0x0000002b00000138000000000000000000000000000000000000000000000000"]
```

## Conditional jump not taken


### Step 1: (Pushes 0x01010101)

```
[0,"0x0000002000000140000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x0000002000000140000000000000000000000000000000000000000000000000","0x000000200000013c000000000000000000000000000000000000000000000000",9,0,"0x01010101",0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x000000250000013c000000000000000000000000000000000000000000000000"]
```

### Step 2: (Pushes 0x01234567)

```
[0,"0x000000250000013c000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x000000200000013c000000000000000000000000000000000000000000000000","0x0000002000000138000000000000000000000000000000000000000000000000",9,"0x01010101","0x0123456701010101",0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002a00000138000000000000000000000000000000000000000000000000"]
```

### Step 3: (Pushes 0x76543210)

```
[0,"0x0000002a00000138000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000"],[0,"0x0000002500000138000000000000000000000000000000000000000000000000","0x0000002500000134000000000000000000000000000000000000000000000000",9,"0x0123456701010101","0x765432100123456701010101",0,"0x0000002a00000134000000000000000000000000000000000000000000000000","0x0000002f00000134000000000000000000000000000000000000000000000000"]
```

### Step 4: (Subtracts, result expected 0x7530eca9)

```
[0,"0x0000002f00000134000000000000000000000000000000000000000000000000",1,"0x010101010101012345670176543210060a000000000000000000000000000000",9,"0x765432100123456701010101"],[0,"0x0000002f00000134000000000000000000000000000000000000000000000000","0x0000002f00000138000000000000000000000000000000000000000000000000",9,"0x765432100123456701010101","0x765432107530eca901010101",0,"0x0000002f00000138000000000000000000000000000000000000000000000000","0x0000003000000138000000000000000000000000000000000000000000000000"]
```

### Step 5: (JZ, Pops two stack entries, no jump)

{'fraction_non_alphanumeric': 0.08563402889245586, 'fraction_numerical': 0.7520064205457464, 'mean_word_length': 26.752783964365257, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 138, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2536021', 'n_tokens_mistral': 10798, 'n_tokens_neox': 2963, 'n_words': 299}