Jump to content

Sequent calculus

From Wikipedia, the free encyclopedia

In mathematical logic, sequent calculus is a style of formal logical argumentation in which every line of a proof is a conditional tautology (called a sequent by Gerhard Gentzen) instead of an unconditional tautology. Each conditional tautology is inferred from other conditional tautologies on earlier lines in a formal argument according to rules and procedures of inference, giving a better approximation to the natural style of deduction used by mathematicians than David Hilbert's earlier style of formal logic, in which every line was an unconditional tautology. More subtle distinctions may exist; for example, propositions may implicitly depend upon non-logical axioms. In that case, sequents signify conditional theorems of a first-order theory rather than conditional tautologies.

Sequent calculus is one of several extant styles of proof calculus for expressing line-by-line logical arguments.

  • Hilbert style. Every line is an unconditional tautology (or theorem).
  • Gentzen style. Every line is a conditional tautology (or theorem) with zero or more conditions on the left.
    • Natural deduction. Every (conditional) line has exactly one asserted proposition on the right.
    • Sequent calculus. Every (conditional) line has zero or more asserted propositions on the right.

In other words, natural deduction and sequent calculus systems are particular distinct kinds of Gentzen-style systems. Hilbert-style systems typically have a very small number of inference rules, relying more on sets of axioms. Gentzen-style systems typically have very few axioms, if any, relying more on sets of rules.

Gentzen-style systems have significant practical and theoretical advantages compared to Hilbert-style systems. For example, both natural deduction and sequent calculus systems facilitate the elimination and introduction of universal and existential quantifiers so that unquantified logical expressions can be manipulated according to the much simpler rules of propositional calculus. In a typical argument, quantifiers are eliminated, then propositional calculus is applied to unquantified expressions (which typically contain free variables), and then the quantifiers are reintroduced. This very much parallels the way in which mathematical proofs are carried out in practice by mathematicians. Predicate calculus proofs are generally much easier to discover with this approach, and are often shorter. Natural deduction systems are more suited to practical theorem-proving. Sequent calculus systems are more suited to theoretical analysis.

Overview

[edit]

In proof theory and mathematical logic, sequent calculus is a family of formal systems sharing a certain style of inference and certain formal properties. The first sequent calculi systems, LK and LJ, were introduced in 1934/1935 by Gerhard Gentzen[1] as a tool for studying natural deduction in first-order logic (in classical and intuitionistic versions, respectively). Gentzen's so-called "Main Theorem" (Hauptsatz) about LK and LJ was the cut-elimination theorem,[2][3] a result with far-reaching meta-theoretic consequences, including consistency. Gentzen further demonstrated the power and flexibility of this technique a few years later, applying a cut-elimination argument to give a (transfinite) proof of the consistency of Peano arithmetic, in surprising response to Gödel's incompleteness theorems. Since this early work, sequent calculi, also called Gentzen systems,[4][5][6][7] and the general concepts relating to them, have been widely applied in the fields of proof theory, mathematical logic, and automated deduction.

Hilbert-style deduction systems

[edit]

One way to classify different styles of deduction systems is to look at the form of judgments in the system, i.e., which things may appear as the conclusion of a (sub)proof. The simplest judgment form is used in Hilbert-style deduction systems, where a judgment has the form

where is any formula of first-order logic (or whatever logic the deduction system applies to, e.g., propositional calculus or a higher-order logic or a modal logic). The theorems are those formulas that appear as the concluding judgment in a valid proof. A Hilbert-style system needs no distinction between formulas and judgments; we make one here solely for comparison with the cases that follow.

The price paid for the simple syntax of a Hilbert-style system is that complete formal proofs tend to get extremely long. Concrete arguments about proofs in such a system almost always appeal to the deduction theorem. This leads to the idea of including the deduction theorem as a formal rule in the system, which happens in natural deduction.

Natural deduction systems

[edit]

In natural deduction, judgments have the shape

where the 's and are again formulas and . In other words, a judgment consists of a list (possibly empty) of formulas on the left-hand side of a turnstile symbol "", with a single formula on the right-hand side,[8][9][10] (though permutations of the 's are often immaterial). The theorems are those formulae such that (with an empty left-hand side) is the conclusion of a valid proof. (In some presentations of natural deduction, the s and the turnstile are not written down explicitly; instead a two-dimensional notation from which they can be inferred is used.)

The standard semantics of a judgment in natural deduction is that it asserts that whenever[11] , , etc., are all true, will also be true. The judgments

and

are equivalent in the strong sense that a proof of either one may be extended to a proof of the other.

Sequent calculus systems

[edit]

Finally, sequent calculus generalizes the form of a natural deduction judgment to

a syntactic object called a sequent. The formulas on left-hand side of the turnstile are called the antecedent, and the formulas on right-hand side are called the succedent or consequent; together they are called cedents or sequents.[12] Again, and are formulas, and and are nonnegative integers, that is, the left-hand-side or the right-hand-side (or neither or both) may be empty. As in natural deduction, theorems are those where is the conclusion of a valid proof.

The standard semantics of a sequent is an assertion that whenever every is true, at least one will also be true.[13] Thus the empty sequent, having both cedents empty, is false.[14] One way to express this is that a comma to the left of the turnstile should be thought of as an "and", and a comma to the right of the turnstile should be thought of as an (inclusive) "or". The sequents

and

are equivalent in the strong sense that a proof of either sequent may be extended to a proof of the other sequent.

At first sight, this extension of the judgment form may appear to be a strange complication—it is not motivated by an obvious shortcoming of natural deduction, and it is initially confusing that the comma seems to mean entirely different things on the two sides of the turnstile. However, in a classical context the semantics of the sequent can also (by propositional tautology) be expressed either as

(at least one of the As is false, or one of the Bs is true)

or as

(it cannot be the case that all of the As are true and all of the Bs are false).

In these formulations, the only difference between formulas on either side of the turnstile is that one side is negated. Thus, swapping left for right in a sequent corresponds to negating all of the constituent formulas. This means that a symmetry such as De Morgan's laws, which manifests itself as logical negation on the semantic level, translates directly into a left–right symmetry of sequents—and indeed, the inference rules in sequent calculus for dealing with conjunction (∧) are mirror images of those dealing with disjunction (∨).

Many logicians feel [citation needed] that this symmetric presentation offers a deeper insight in the structure of the logic than other styles of proof system, where the classical duality of negation is not as apparent in the rules.

Distinction between natural deduction and sequent calculus

[edit]

Gentzen asserted a sharp distinction between his single-output natural deduction systems (NK and NJ) and his multiple-output sequent calculus systems (LK and LJ). He wrote that the intuitionistic natural deduction system NJ was somewhat ugly.[15] He said that the special role of the excluded middle in the classical natural deduction system NK is removed in the classical sequent calculus system LK.[16] He said that the sequent calculus LJ gave more symmetry than natural deduction NJ in the case of intuitionistic logic, as also in the case of classical logic (LK versus NK).[17] Then he said that in addition to these reasons, the sequent calculus with multiple succedent formulas is intended particularly for his principal theorem ("Hauptsatz").[18]

Origin of word "sequent"

[edit]

The word "sequent" is taken from the word "Sequenz" in Gentzen's 1934 paper.[1] Kleene makes the following comment on the translation into English: "Gentzen says 'Sequenz', which we translate as 'sequent', because we have already used 'sequence' for any succession of objects, where the German is 'Folge'."[19]

Proving logical formulas

[edit]
A rooted tree describing a proof finding procedure by sequent calculus

Reduction trees

[edit]

Sequent calculus can be seen as a tool for proving formulas in propositional logic, similar to the method of analytic tableaux. It gives a series of steps that allows one to reduce the problem of proving a logical formula to simpler and simpler formulas until one arrives at trivial ones.[20]

Consider the following formula:

This is written in the following form, where the proposition that needs to be proven is to the right of the turnstile symbol :

Now, instead of proving this from the axioms, it is enough to assume the premise of the implication and then try to prove its conclusion.[21] Hence one moves to the following sequent:

Again the right hand side includes an implication, whose premise can further be assumed so that only its conclusion needs to be proven:

Since the arguments in the left-hand side are assumed to be related by conjunction, this can be replaced by the following:

This is equivalent to proving the conclusion in both cases of the disjunction on the first argument on the left. Thus we may split the sequent to two, where we now have to prove each separately:

In the case of the first judgment, we rewrite as and split the sequent again to get:

The second sequent is done; the first sequent can be further simplified into:

This process can always be continued until there are only atomic formulas in each side. The process can be graphically described by a rooted tree, as depicted on the right. The root of the tree is the formula we wish to prove; the leaves consist of atomic formulas only. The tree is known as a reduction tree.[20][22]

The items to the left of the turnstile are understood to be connected by conjunction, and those to the right by disjunction. Therefore, when both consist only of atomic symbols, the sequent is accepted axiomatically (and always true) if and only if at least one of the symbols on the right also appears on the left.

Following are the rules by which one proceeds along the tree. Whenever one sequent is split into two, the tree vertex has two child vertices, and the tree is branched. Additionally, one may freely change the order of the arguments in each side; Γ and Δ stand for possible additional arguments.[20]

The usual term for the horizontal line used in Gentzen-style layouts for natural deduction is inference line.[23]

Left Right
Axiom:

Starting with any formula in propositional logic, by a series of steps, the right side of the turnstile can be processed until it includes only atomic symbols. Then, the same is done for the left side. Since every logical operator appears in one of the rules above, and is removed by the rule, the process terminates when no logical operators remain: The formula has been decomposed.

Thus, the sequents in the leaves of the trees include only atomic symbols, which are either provable by the axiom or not, according to whether one of the symbols on the right also appears on the left.

It is easy to see that the steps in the tree preserve the semantic truth value of the formulas implied by them, with conjunction understood between the tree's different branches whenever there is a split. It is also obvious that an axiom is provable if and only if it is true for every assignment of truth values to the atomic symbols. Thus this system is sound and complete for classical propositional logic.

Relation to standard axiomatizations

[edit]

Sequent calculus is related to other axiomatizations of classical propositional calculus, such as Frege's propositional calculus or Jan Łukasiewicz's axiomatization (itself a part of the standard Hilbert system): Every formula that can be proven in these has a reduction tree. This can be shown as follows: Every proof in propositional calculus uses only axioms and the inference rules. Each use of an axiom scheme yields a true logical formula, and can thus be proven in sequent calculus; examples for these are shown below. The only inference rule in the systems mentioned above is modus ponens, which is implemented by the cut rule.

The system LK

[edit]

This section introduces the rules of the sequent calculus LK (standing for Logistische Kalkül) as introduced by Gentzen in 1934.[24] A (formal) proof in this calculus is a finite sequence of sequents, where each of the sequents is derivable from sequents appearing earlier in the sequence by using one of the rules below.

Inference rules

[edit]

The following notation will be used:

  • known as the turnstile, separates the assumptions on the left from the propositions on the right
  • and denote formulas of first-order predicate logic (one may also restrict this to propositional logic),
  • , and are finite (possibly empty) sequences of formulas (in fact, the order of formulas does not matter; see § Structural rules), called contexts,
    • when on the left of the , the sequence of formulas is considered conjunctively (all assumed to hold at the same time),
    • while on the right of the , the sequence of formulas is considered disjunctively (at least one of the formulas must hold for any assignment of variables),
  • denotes an arbitrary term,
  • and denote variables.
  • a variable is said to occur free within a formula if it is not bound by quantifiers or .
  • denotes the formula that is obtained by substituting the term for every free occurrence of the variable in formula with the restriction that the term must be free for the variable in (i.e., no occurrence of any variable in becomes bound in ).
  • , , , , , : These six stand for the two versions of each of three structural rules; one for use on the left ('L') of a , and the other on its right ('R'). The rules are abbreviated 'W' for Weakening (Left/Right), 'C' for Contraction, and 'P' for Permutation.

Note that, contrary to the rules for proceeding along the reduction tree presented above, the following rules are for moving in the opposite directions, from axioms to theorems. Thus they are exact mirror-images of the rules above, except that here symmetry is not implicitly assumed, and rules regarding quantification are added.

Axiom Cut
Left logical rules Right logical rules
Left structural rules Right structural rules

Restrictions: In the rules and , the variable must not occur free anywhere in the respective lower sequents.

An intuitive explanation

[edit]

The above rules can be divided into two major groups: logical and structural ones. Each of the logical rules introduces a new logical formula either on the left or on the right of the turnstile . In contrast, the structural rules operate on the structure of the sequents, ignoring the exact shape of the formulas. The two exceptions to this general scheme are the axiom of identity (I) and the rule of (Cut).

Although stated in a formal way, the above rules allow for a very intuitive reading in terms of classical logic. Consider, for example, the rule . It says that, whenever one can prove that can be concluded from some sequence of formulas that contain , then one can also conclude from the (stronger) assumption that holds. Likewise, the rule states that, if and suffice to conclude , then from alone one can either still conclude or must be false, i.e. holds. All the rules can be interpreted in this way.

For an intuition about the quantifier rules, consider the rule . Of course concluding that holds just from the fact that is true is not in general possible. If, however, the variable y is not mentioned elsewhere (i.e. it can still be chosen freely, without influencing the other formulas), then one may assume, that holds for any value of y. The other rules should then be pretty straightforward.

Instead of viewing the rules as descriptions for legal derivations in predicate logic, one may also consider them as instructions for the construction of a proof for a given statement. In this case the rules can be read bottom-up; for example, says that, to prove that follows from the assumptions and , it suffices to prove that can be concluded from and can be concluded from , respectively. Note that, given some antecedent, it is not clear how this is to be split into and . However, there are only finitely many possibilities to be checked since the antecedent by assumption is finite. This also illustrates how proof theory can be viewed as operating on proofs in a combinatorial fashion: given proofs for both and , one can construct a proof for .

When looking for some proof, most of the rules offer more or less direct recipes of how to do this. The rule of cut is different: it states that, when a formula can be concluded and this formula may also serve as a premise for concluding other statements, then the formula can be "cut out" and the respective derivations are joined. When constructing a proof bottom-up, this creates the problem of guessing (since it does not appear at all below). The cut-elimination theorem is thus crucial to the applications of sequent calculus in automated deduction: it states that all uses of the cut rule can be eliminated from a proof, implying that any provable sequent can be given a cut-free proof.

The second rule that is somewhat special is the axiom of identity (I). The intuitive reading of this is obvious: every formula proves itself. Like the cut rule, the axiom of identity is somewhat redundant: the completeness of atomic initial sequents states that the rule can be restricted to atomic formulas without any loss of provability.

Observe that all rules have mirror companions, except the ones for implication. This reflects the fact that the usual language of first-order logic does not include the "is not implied by" connective that would be the De Morgan dual of implication. Adding such a connective with its natural rules would make the calculus completely left–right symmetric.

Example derivations

[edit]

Here is the derivation of "", known as the Law of excluded middle (tertium non datur in Latin).

   
 
 
 
 
 
 
 
 
 
 
 
   

Next is the proof of a simple fact involving quantifiers. Note that the converse is not true, and its falsity can be seen when attempting to derive it bottom-up, because an existing free variable cannot be used in substitution in the rules and .

   
 
 
 
 
 
 
 
 
 
   

For something more interesting we shall prove . It is straightforward to find the derivation, which exemplifies the usefulness of LK in automated proving.

   
 
 
 
 
 
   
  
 
 
 
 
   
  
 
 
 
 
   
 
 
 
 
 
 
   
  
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 
   
 
 
 
 
 
 
 
 
 
 
   

These derivations also emphasize the strictly formal structure of the sequent calculus. For example, the logical rules as defined above always act on a formula immediately adjacent to the turnstile, such that the permutation rules are necessary. Note, however, that this is in part an artifact of the presentation, in the original style of Gentzen. A common simplification involves the use of multisets of formulas in the interpretation of the sequent, rather than sequences, eliminating the need for an explicit permutation rule. This corresponds to shifting commutativity of assumptions and derivations outside the sequent calculus, whereas LK embeds it within the system itself.

Relation to analytic tableaux

[edit]

For certain formulations (i.e. variants) of the sequent calculus, a proof in such a calculus is isomorphic to an upside-down, closed analytic tableau.[25]

Structural rules

[edit]

The structural rules deserve some additional discussion.

Weakening (W) allows the addition of arbitrary elements to a sequence. Intuitively, this is allowed in the antecedent because we can always restrict the scope of our proof (if all cars have wheels, then it's safe to say that all black cars have wheels); and in the succedent because we can always allow for alternative conclusions (if all cars have wheels, then it's safe to say that all cars have either wheels or wings).

Contraction (C) and Permutation (P) assure that neither the order (P) nor the multiplicity of occurrences (C) of elements of the sequences matters. Thus, one could instead of sequences also consider sets.

The extra effort of using sequences, however, is justified since part or all of the structural rules may be omitted. Doing so, one obtains the so-called substructural logics.

Properties of the system LK

[edit]

This system of rules can be shown to be both sound and complete with respect to first-order logic, i.e. a statement follows semantically from a set of premises if and only if the sequent can be derived by the above rules.[26]

In the sequent calculus, the rule of cut is admissible. This result is also referred to as Gentzen's Hauptsatz ("Main Theorem").[2][3]

Variants

[edit]

The above rules can be modified in various ways:

Minor structural alternatives

[edit]

There is some freedom of choice regarding the technical details of how sequents and structural rules are formalized without changing what sequents the system derives.

First of all, as mentioned above, the sequents can be viewed to consist of sets or multisets. In this case, the rules for permuting and (when using sets) contracting formulas are unnecessary.

The rule of weakening becomes admissible if the axiom (I) is changed to derive any sequent of the form . Any weakening that appears in a derivation can then be moved to the beginning of the proof. This may be a convenient change when constructing proofs bottom-up.

One may also change whether rules with more than one premise share the same context for each of those premises or split their contexts between them: For example, may be instead formulated as

Contraction and weakening make this version of the rule interderivable with the version above, although in their absence, as in linear logic, these rules define different connectives.

Absurdity

[edit]

One can introduce , the absurdity constant representing false, with the axiom:

Or if, as described above, weakening is to be an admissible rule, then with the axiom:

With , negation can be subsumed as a special case of implication, via the definition .

Substructural logics

[edit]

Alternatively, one may restrict or forbid the use of some of the structural rules. This yields a variety of substructural logic systems. They are generally weaker than LK (i.e., they have fewer theorems), and thus not complete with respect to the standard semantics of first-order logic. However, they have other interesting properties that have led to applications in theoretical computer science and artificial intelligence.

Intuitionistic sequent calculus: System LJ

[edit]

Surprisingly, some small changes in the rules of LK suffice to turn it into a proof system for intuitionistic logic.[27] To this end, one has to restrict to sequents with at most one formula on the right-hand side,[28] and modify the rules to maintain this invariant. For example, is reformulated as follows (where C is an arbitrary formula):

The resulting system is called LJ. It is sound and complete with respect to intuitionistic logic and admits a similar cut-elimination proof. This can be used in proving disjunction and existence properties.

In fact, the only rules in LK that need to be restricted to single-formula consequents are , (which can be seen as a special case of , as described above) and . When multi-formula consequents are interpreted as disjunctions, all of the other inference rules of LK are derivable in LJ, while the rules and become

and (when does not occur free in the bottom sequent)

These rules are not intuitionistically valid.

See also

[edit]

Notes

[edit]
  1. ^ a b Gentzen 1934, Gentzen 1935.
  2. ^ a b Curry 1977, pp. 208–213, gives a 5-page proof of the elimination theorem. See also pages 188, 250.
  3. ^ a b Kleene 2009, pp. 453, gives a very brief proof of the cut-elimination theorem.
  4. ^ Curry 1977, pp. 189–244, calls Gentzen systems LC systems. Curry's emphasis is more on theory than on practical logic proofs.
  5. ^ Kleene 2009, pp. 440–516. This book is much more concerned with the theoretical, metamathematical implications of Gentzen-style sequent calculus than applications to practical logic proofs.
  6. ^ Kleene 2002, pp. 283–312, 331–361, defines Gentzen systems and proves various theorems within these systems, including Gödel's completeness theorem and Gentzen's theorem.
  7. ^ Smullyan 1995, pp. 101–127, gives a brief theoretical presentation of Gentzen systems. He uses the tableau proof layout style.
  8. ^ Curry 1977, pp. 184–244, compares natural deduction systems, denoted LA, and Gentzen systems, denoted LC. Curry's emphasis is more theoretical than practical.
  9. ^ Suppes 1999, pp. 25–150, is an introductory presentation of practical natural deduction of this kind. This became the basis of System L.
  10. ^ Lemmon 1965 is an elementary introduction to practical natural deduction based on the convenient abbreviated proof layout style System L based on Suppes 1999, pp. 25–150.
  11. ^ Here, "whenever" is used as an informal abbreviation "for every assignment of values to the free variables in the judgment"
  12. ^ Shankar, Natarajan; Owre, Sam; Rushby, John M.; Stringer-Calvert, David W. J. (2001-11-01). "PVS Prover Guide" (PDF). User guide. SRI International. Retrieved 2015-05-29.
  13. ^ For explanations of the disjunctive semantics for the right side of sequents, see Curry 1977, pp. 189–190, Kleene 2002, pp. 290, 297, Kleene 2009, p. 441, Hilbert & Bernays 1970, p. 385, Smullyan 1995, pp. 104–105 and Gentzen 1934, p. 180.
  14. ^ Buss 1998, p. 10
  15. ^ Gentzen 1934, p. 188. "Der Kalkül NJ hat manche formale Unschönheiten."
  16. ^ Gentzen 1934, p. 191. "In dem klassischen Kalkül NK nahm der Satz vom ausgeschlossenen Dritten eine Sonderstellung unter den Schlußweisen ein [...], indem er sich der Einführungs- und Beseitigungssystematik nicht einfügte. Bei dem im folgenden anzugebenden logistischen klassichen Kalkül LK wird diese Sonderstellung aufgehoben."
  17. ^ Gentzen 1934, p. 191. "Die damit erreichte Symmetrie erweist sich als für die klassische Logik angemessener."
  18. ^ Gentzen 1934, p. 191. "Hiermit haben wir einige Gesichtspunkte zur Begründung der Aufstellung der folgenden Kalküle angegeben. Im wesentlichen ist ihre Form jedoch durch die Rücksicht auf den nachher zu beweisenden 'Hauptsatz' bestimmt und kann daher vorläufig nicht näher begründet werden."
  19. ^ Kleene 2002, p. 441.
  20. ^ a b c Applied Logic, Univ. of Cornell: Lecture 9. Last Retrieved: 2016-06-25
  21. ^ "Remember, the way that you prove an implication is by assuming the hypothesis."—Philip Wadler, on 2 November 2015, in his Keynote: "Propositions as Types". Minute 14:36 /55:28 of Code Mesh video clip
  22. ^ Tait WW (2010). "Gentzen's original consistency proof and the Bar Theorem" (PDF). In Kahle R, Rathjen M (eds.). Gentzen's Centenary: The Quest for Consistency. New York: Springer. pp. 213–228.
  23. ^ Jan von Plato, Elements of Logical Reasoning, Cambridge University Press, 2014, p. 32.
  24. ^ Andrzej-Indrzejczak, An Introduction to the Theory and Applications of Propositional Sequent Calculi (2021, chapter "Gentzen's Sequent Calculus LK"). Accessed 3 August 2022.
  25. ^ Smullyan 1995, p. 107
  26. ^ Kleene 2002, p. 336, wrote in 1967 that "it was a major logical discovery by Gentzen 1934–5 that, when there is any (purely logical) proof of a proposition, there is a direct proof. The implications of this discovery are in theoretical logical investigations, rather than in building collections of proved formulas."
  27. ^ Gentzen 1934, p. 194, wrote: "Der Unterschied zwischen intuitionistischer und klassischer Logik ist bei den Kalkülen LJ und LK äußerlich ganz anderer Art als bei NJ und NK. Dort bestand er in Weglassung bzw. Hinzunahme des Satzes vom ausgeschlossenen Dritten, während er hier durch die Sukzedensbedingung ausgedrückt wird." English translation: "The difference between intuitionistic and classical logic is in the case of the calculi LJ and LK of an extremely, totally different kind to the case of NJ and NK. In the latter case, it consisted of the removal or addition respectively of the excluded middle rule, whereas in the former case, it is expressed through the succedent conditions."
  28. ^ M. Tiomkin, "Proving unprovability", pp.22--26. In Proceedings Of The Third Annual Symposium On Logic In Computer Science, July 5-8, 1988 (1988), IEEE. ISBN 0-8186-0853-6.

References

[edit]
[edit]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy