protocol

varlistp

List of variables protocol.

author:
Paulo Moura
version:
1.0
date:
2009/4/29
compilation flags:
static

(no dependencies on other files)

Public interface

append/3

Appends two lists.

compilation flags:
static
template:
append(List1,List2,List)
mode – number of proofs:
append(?list,?list,?list) – zero_or_more

delete/3

Deletes from a list all occurrences of an element returning the list of remaining elements.

compilation flags:
static
template:
delete(List,Element,Remaining)
mode – number of proofs:
delete(@list,@term,?list) – one

empty/1

True if the argument is an empty list.

compilation flags:
static
template:
empty(List)
mode – number of proofs:
empty(@list) – zero_or_one

flatten/2

Flattens a list of lists into a list.

compilation flags:
static
template:
flatten(List,Flatted)
mode – number of proofs:
flatten(@list,-list) – one

last/2

List last element (if it exists).

compilation flags:
static
template:
last(List,Last)
mode – number of proofs:
last(@list,@var) – zero_or_one

length/2

List length.

compilation flags:
static
template:
length(List,Length)
mode – number of proofs:
length(@list,?integer) – zero_or_one

memberchk/2

Checks if a variable is a member of a list.

compilation flags:
static
template:
memberchk(Element,List)
mode – number of proofs:
memberchk(@var,@list) – zero_or_one

nextto/3

X and Y are consecutive elements in List.

compilation flags:
static
template:
nextto(X,Y,List)
mode – number of proofs:
nextto(@var,@var,?list) – zero_or_more

nth0/3

Nth element of a list (counting from zero).

compilation flags:
static
template:
nth0(Nth,List,Element)
mode – number of proofs:
nth0(?integer,+list,@var) – zero_or_more

nth0/4

Nth element of a list (counting from zero).

compilation flags:
static
template:
nth0(Nth,List,Element,Residue)
mode – number of proofs:
nth0(?integer,+list,@var,?list) – zero_or_more

nth1/3

Nth element of a list (counting from one).

compilation flags:
static
template:
nth1(Nth,List,Element)
mode – number of proofs:
nth1(?integer,+list,@var) – zero_or_more

nth1/4

Nth element of a list (counting from zero).

compilation flags:
static
template:
nth1(Nth,List,Element,Residue)
mode – number of proofs:
nth1(?integer,+list,@var,?list) – zero_or_more

permutation/2

The two lists are a permutation of the same list.

compilation flags:
static
template:
permutation(List,Permutation)
mode – number of proofs:
permutation(@list,@list) – zero_or_one

prefix/2

Prefix is a prefix of List.

compilation flags:
static
template:
prefix(Prefix,List)
mode – number of proofs:
prefix(?list,@list) – zero_or_more

reverse/2

Reverses a list.

compilation flags:
static
template:
reverse(List,Reversed)
mode – number of proofs:
reverse(@list,?list) – zero_or_one
reverse(?list,@list) – zero_or_one
reverse(-list,-list) – one_or_more

same_length/2

The two lists have the same length.

compilation flags:
static
template:
same_length(List1,List2)
mode – number of proofs:
same_length(@list,?list) – zero_or_one
same_length(?list,@list) – zero_or_one
same_length(-list,-list) – one_or_more

select/3

Selects an element from a list, returning the list of remaining elements.

compilation flags:
static
template:
select(Element,List,Remaining)
mode – number of proofs:
select(@var,?list,?list) – zero_or_more

sublist/2

The first list is a sublist of the second.

compilation flags:
static
template:
sublist(Sublist,List)
mode – number of proofs:
sublist(?list,@list) – zero_or_more

subtract/3

Removes all elements in the second list from the first list, returning the list of remaining elements.

compilation flags:
static
template:
subtract(List,Elements,Remaining)
mode – number of proofs:
subtract(@list,@list,-list) – one

suffix/2

Suffix is a suffix of List.

compilation flags:
static
template:
suffix(Suffix,List)
mode – number of proofs:
suffix(?list,@list) – zero_or_more

Protected interface

(none)

Private predicates

(none)

Operators

(none)

Remarks

(none)