# Mixed divisibility

!distribute items $wims_read_parm into slib_n, slib_type, slib_formula
slib_1=!item 4 to -1 of $wims_read_parm

!default slib_static_r1=!randitem 3,4,5,6
!default slib_static_r2=!randitem 0,1
!if $slib_static_r2=1
 slib_p1=not
!else
 slib_p1=
!endif

!default slib_static_op=!randitem *,*,+,-

!exec pari sLx=[$slib_1]
slib_x=!exec pari vector($slib_n,x,((x-1) $slib_static_op sLx[x])%$slib_static_r1)
slib_x=!positionof item 0 in $slib_x
!if $slib_static_r2=1
 slib_l=!makelist x for x=1 to $slib_n
 slib_x=!listcomplement $slib_x in $slib_l
!endif
!if $slib_formula != $empty
 slib_list=!item $slib_x of $slib_1
 slib_sum=!sum $slib_formula for x in $slib_list
!else
 slib_sum=
!endif

slib_tq=!randitem such that, for which, where

slib_2=!singlespace for indices var_i $slib_tq \
	var_i$(slib_static_op)var_l[var_i] is $slib_p1 divisible by $slib_static_r1

slib_out=$slib_x\
$slib_2\
$slib_sum

