1. A non-transitory computer-readable storage medium storing instructions that when executed cause a processor to perform a process, the process comprising: receiving a representation of a circuit including a plurality of elements and a plurality of relationships; defining a first subset of the plurality of elements and a second subset of the plurality of elements based on an analysis of the representation of the circuit; assigning a first rank to the first subset of the plurality of elements, and a second rank to the second subset of the plurality of elements; receiving a triplication condition; and selecting at least one of the first subset of the plurality of elements or the second subset of the plurality of elements for triplication based on the first rank, the second rank, and based on the triplication condition.