> For the complete documentation index, see [llms.txt](https://docs.r.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.r.xyz/glider-ide/api/instruction/instruction.backward_df.md).

# Instruction.backward\_df()

`backward_df() →` [`APISet`](/glider-ide/api/iterables/apiset.md)`[`[`Point`](/glider-ide/api/point.md)`]`

The `backward_df()` function is an intra-procedural analysis function. This means that the function does not operate recursively and instead returns `instruction/argument/variable` within the current function instruction set.

The function returns the derived classes from [Point](/glider-ide/api/point.md), such as [ArgumentPoint](/glider-ide/api/point/argumentpoint.md), [VarValue](/glider-ide/api/point/varvalue.md), [Instruction](/glider-ide/api/instruction.md), etc.

## Query Example

```python
from glider import *


def query():
  # Fetch an instruction
  instructions = Instructions().with_callee_name('verify').exec(1)
  
  for points in instructions[0].backward_df():
    print(points.source_code())

  # Return the list of previous instructions of the current instruction
  return instructions
```

## Output Example

<figure><img src="/files/F4eKdZT51GxHo62rfPV1" alt=""><figcaption></figcaption></figure>

For the same contract, this query showcases that the return list elements are type-casted from Point:

```python
from glider import *


def query():
  # Fetch an instruction
  instructions = Instructions().with_callee_name('verify').exec(1)
  
  for points in instructions[0].backward_df():
    if isinstance(points, ArgumentPoint):
      print(points.get_variable().name)
    print(points.source_code())

  # Return the list of previous instructions of the current instruction
  return instructions
```

<figure><img src="/files/FLg9LEI5X5hgb95l4aGA" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The function returns APISet, instead of APIList, in case the result of the function is used as the return value of the query it must be casted to `list()`
{% endhint %}
