Skip to content

(Deferred) Named predicates and list indexing: permutation, connected, acyclic, Q[i] #34

Open

Description

@Trosper3

Problem

Some conditions can't be written compactly with quantifiers alone: orderings, connectivity and acyclicity. Without a way to say them, Hamiltonian Cycle, Spanning Tree, Feedback Arc Set and similar problems keep prose certificate grammars. Part of #32.

Wanted

  • Indexing into lists: Q[i] and |Q|, index arithmetic like Q[i+1 mod |Q|], and for all i over a list's indices.
  • A small library of named predicates, each with a fixed English phrase for the generated text:
    • Q is permutation of N: every element of N exactly once;
    • connected (N, E), acyclic (N, E), is path from s to t in (N, E);
    • partition of S into G: the groups are disjoint and cover S.

Examples

  • Hamiltonian Cycle certificate: {Q | Q is permutation of N, for all i: {Q[i], Q[i+1 mod |Q|]} in E}
    • Generated Output: "True if there is an ordering Q of all the nodes in N, each exactly once, such that each node is joined by an edge in E to the next, and the last to the first; otherwise False."
  • Feedback Arc Set: acyclic (N, E minus F).

Notes

The library should stay small and textbook-standard. A predicate earns a place when two or more Redux problems need it.

Activity

  1. changed the title [-]Named predicates and list indexing: permutation, connected, acyclic, Q[i][/-] [+](Deferred) Named predicates and list indexing: permutation, connected, acyclic, Q[i][/+] on Oct 16, 2026
  2. Trosper3 commented on Oct 16, 2026

    @Trosper3
    ContributorAuthor

    Deferred (Oct 15): in the format agreed in #32, a certificate's meaning (an ordering, connectivity, acyclicity) goes in the free-form Definition and the Verifier, so SPADE doesn't need to express it. Keeping this open in case SPADE-checked certificates come back later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions