## Calling Sequence

## Arguments

\(x\) | — | identifier |

\(L\) | — | list |

\(E\) | — | expression evaluating to a first-order formulas and typically depending on \(x\) |

\(n\) | — | integer |

\(m\) | — | integer |

## Returns

\(\varphi′\) | — | first-order formula |

## Description

Reduce has a quite general concept of for loops. On the one hand, the
synopsis show that the condition of the loop allows to run over a range
\(n\dots m\) of integers as well as over the elements of a given list \(L\).
In fact there even further options for conditions can be found in the Reduce
manual. On the other hand, the *iterator actions* allow not only to
evaluate the body of the loop with each iteration but to perform certain
constructive actions with the corresponding evaluation results.

With mkand and mkor corresponding conjunctions and disjunctions are constructed, respectively. Note that those conjunctions and disjunctions generally start with the corresponding neutral element for the 0-th iteration of the loop.

## Examples

```
for each at in rlatl(a=0 and (b=0 or c=0)) mkand at;
```

for i:=1:3 mkand

for j:=1:3 mkor

if j<>i then mkid(x,i)+mkid(x,j)=0;