`compl_fact_fib_V2` est calculée à l'aide de `NEW`. On ne peut pas utiliser la technique précédente pour vérifier notre prédicat. Par contre, on peut confronter `compl_fact_fib_V1` et compl_fact_fib_V2 car elle sont issues de deux méthodes différentes.
def first_{name} "?{base} Aj $feq_{name}(i,j,n) => i<=j":
def last_{name} "?{base} $first_{name}(i,n) & Ak k>i => ~$first_{name}(k,n)": """)
to_md(f"""
## Construction de la complexité en facteur par itération
`next_block_{name}(i,j,n)` : (i,n) est un facteur non nouveau et (j,n) est le premier facteur nouveau qui suit. Si un tel facteur (j,n) n'existe pas, j=i
`block_max_right_{name}(i,j,n,l)` : il y a un bloc de l facteurs nouveau entre (i,n) et (j,n) et il est maximal à droite
Suite d'automate / prédicat (j entier non nul) `compte_j_{name}(e,n,p)` : entre (0,n) et (e,n), il y a p facteurs nouveau répartis dans j blocs ou moins
`compl_fact_{name}_V1(n,p)` : complexité en facteur synchronisée
""")
to_pyscript("factcompl_via_iter",f"""
script.append(f'def last_{name} "?{base} $first_{name}(i,n) & Ak k>i => ~$first_{name}(k,n)";')
`compl_fact_{name}_V2` est calculée à l'aide de `NEW`. On ne peut pas utiliser la technique précédente pour vérifier notre prédicat. Par contre, on peut confronter `compl_fact_{name}_V1` et compl_fact_{name}_V2 car elle sont issues de deux méthodes différentes.