A voter can choose to cast a Standard Ballot or an Elaborated Ballot.
The standard ballot allows the voter to rank the candidates. Equal ranking is allowed.
An elaborated ballot consists of an ordered collection of rules. The head of each rule is a Boolean combination over statements of which candidates are still in the running. The tail of a given rule gives scores to the candidates.
To convert a standard ballot into its elaborated equivalent, we write a rule for each rank starting at the bottom (most hated) rank. The output rules go in reverse order relative to the input ranks. In each case we say that if any of the the candidates cited in the rank is still in the running, we fully oppose those candidates and fully support the better candidates. When we reach the top rank (favorite candidates), we can stop translating, and omit to derive any rule from it. This all assumes that the voter mentions all the candidates or that there is a method to take into account the candidates the voter omits to mention (e. g. put them in a rank below the explicit ranks).
The tally proceeds by eliminations. Each round must eliminate the worst candidate remaining. Find on each ballot (they are all elaborated ballots by this point) the rule nearest the beginning of the ballot for which the head of the rule evaluates to true relative to the facts about which candidates have not been eliminated in prior rounds, and use the tail of that rule to increment the scores. Once the ballots have all been so taken into account, eliminate the candidate having the lowest cumulative score. Each round starts with zeros as the initial cumulative scores of the candidates.