<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=Thompson%27s_construction_algorithm</id>
	<title>Thompson&#039;s construction algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=Thompson%27s_construction_algorithm"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Thompson%27s_construction_algorithm&amp;action=history"/>
	<updated>2026-07-11T15:03:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Thompson%27s_construction_algorithm&amp;diff=28166&amp;oldid=prev</id>
		<title>87.14.239.1: Undid revision 592354002 by 87.14.239.1 (talk)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Thompson%27s_construction_algorithm&amp;diff=28166&amp;oldid=prev"/>
		<updated>2014-01-25T18:07:07Z</updated>

		<summary type="html">&lt;p&gt;Undid revision 592354002 by &lt;a href=&quot;/wiki/Special:Contributions/87.14.239.1&quot; title=&quot;Special:Contributions/87.14.239.1&quot;&gt;87.14.239.1&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=User_talk:87.14.239.1&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:87.14.239.1 (page does not exist)&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Underlinked|date=November 2012}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pregroup grammar (PG)&amp;#039;&amp;#039;&amp;#039; is a [[Formal grammar|grammar formalism]] intimately related to [[categorial grammar]]s. Much like categorial grammar (CG), PG is a kind of [[type logical grammar]]. Unlike CG, however, PG does not have a distinguished function type. Rather, PG uses inverse types combined with its monoidal operation.&lt;br /&gt;
&lt;br /&gt;
== Definition of a pregroup ==&lt;br /&gt;
&lt;br /&gt;
A pregroup is a [[partial order|partially ordered]] [[universal algebra|algebra]] &amp;lt;math&amp;gt;(A, 1, \cdot, -^l, -^r, \leq)&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;(A, 1, \cdot)&amp;lt;/math&amp;gt; is a [[monoid]], satisfying the following relations:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;x^l \cdot x \leq 1 \qquad x \cdot x^r \leq 1&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(contraction)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;1 \leq x \cdot x^l \qquad 1 \leq x^r \cdot x&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(expansion)&lt;br /&gt;
&lt;br /&gt;
The contraction and expansion relations are sometimes called  [[Ajdukiewicz]] laws.&lt;br /&gt;
&lt;br /&gt;
From this, it can be proven that the following equations hold:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;1^l = 1 = 1^r&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;x^{lr} = x = x^{rl}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;(x\cdot y)^l = y^l \cdot x^l \qquad (x\cdot y)^r = y^r \cdot x^r&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x^l&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x^r&amp;lt;/math&amp;gt; are called the [[left adjoint|left]] and [[right adjoint]]s of &amp;#039;&amp;#039;x&amp;#039;&amp;#039;, respectively.&lt;br /&gt;
&lt;br /&gt;
The symbol &amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\leq&amp;lt;/math&amp;gt; are also written &amp;lt;math&amp;gt;\otimes&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; respectively. In [[category theory]], pregroups are also known as [[compact closed category|(non-symmetric) compact closed (monoidal) categories]]. More typically, &amp;lt;math&amp;gt;x \cdot y&amp;lt;/math&amp;gt; will just be represented by adjacency, i.e. as &amp;lt;math&amp;gt;xy&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Definition of a pregroup grammar ==&lt;br /&gt;
&lt;br /&gt;
A pregroup grammar consists of a [[lexicon]] of words (and possibly [[morphemes]]) &amp;#039;&amp;#039;L&amp;#039;&amp;#039;, a set of atomic types &amp;#039;&amp;#039;T&amp;#039;&amp;#039; which [[free object|freely generates]] a pregroup, and an relation &amp;lt;math&amp;gt;:&amp;lt;/math&amp;gt; that relates words to types. In simple pregroup grammars, typing is a function that maps words to only one type each.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
Some simple, intuitive examples using English as the language to model demonstrate the core principles behind pregroups and their use in linguistic domains.&lt;br /&gt;
&lt;br /&gt;
Let &amp;#039;&amp;#039;L = {John, Mary, the, dog, cat, met, barked, at}&amp;#039;&amp;#039;, let &amp;#039;&amp;#039;T = {N, S, N&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;}&amp;#039;&amp;#039;, and let the following typing relation holds:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\text{John} : N \qquad \text{Mary} : N \qquad \text{the} : N \cdot N_0^l \qquad \text{dog} : N_0 \qquad cat : N_0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;met : N^r \cdot S \cdot N^l \qquad barked : N^r \cdot S \qquad at : S^r \cdot N^{rr} \cdot N^r \cdot S \cdot N^l&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A sentence &amp;#039;&amp;#039;S&amp;#039;&amp;#039; that has type &amp;#039;&amp;#039;T&amp;#039;&amp;#039; is said to be grammatical if &amp;lt;math&amp;gt;T \leq S&amp;lt;/math&amp;gt;. We can prove this by use of a chain of &amp;lt;math&amp;gt;\leq&amp;lt;/math&amp;gt;. For example, we can prove that &amp;lt;math&amp;gt;John\ met\ Mary : N \cdot N^r \cdot S \cdot N^l \cdot N&amp;lt;/math&amp;gt; is grammatical by proving that &amp;lt;math&amp;gt;N \cdot N^r \cdot S \cdot N^l \cdot N \leq S&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;N \cdot N^r \cdot S \cdot N^l \cdot N ~\leq~ S \cdot N^l \cdot N ~\leq~ S&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
by first using contraction on &amp;lt;math&amp;gt;N \cdot N^r&amp;lt;/math&amp;gt; and then again on &amp;lt;math&amp;gt;N^l \cdot N&amp;lt;/math&amp;gt;. A more convenient notation exists, however, that indicates contractions by connecting them with a drawn link between the contracting types (provided that the links are nested, i.e. don&amp;#039;t cross). Words are also typically placed above their types to make the proof more intuitive. The same proof in this notation is simply&lt;br /&gt;
&lt;br /&gt;
[[File:PregroupGrammar-Example-JohnMetMary.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
A more complex example proves that &amp;#039;&amp;#039;the dog barked at the cat&amp;#039;&amp;#039; is grammatical:&lt;br /&gt;
&lt;br /&gt;
[[File:PregroupGrammar-Example-TheDogBarkedAtTheCat.png|center|thumb|upright=2]]&lt;br /&gt;
&lt;br /&gt;
== Semantics of pregroup grammars ==&lt;br /&gt;
&lt;br /&gt;
Because of the lack of function types in PG, the usual method of giving a semantics via the [[Lambda calculus|λ-calculus]] or via function denotations is not available in any obvious way. Instead, two different methods exist, one purely formal method that corresponds to the λ-calculus, and one denotational method analogous to (a fragment of) the tensor mathematics of [[quantum mechanics]].&lt;br /&gt;
&lt;br /&gt;
=== Purely formal semantics ===&lt;br /&gt;
&lt;br /&gt;
The purely formal semantics for PG consists of a logical language defined according to the following rules:&lt;br /&gt;
&lt;br /&gt;
* Given a set of atomic terms &amp;#039;&amp;#039;T&amp;#039;&amp;#039; = {&amp;#039;&amp;#039;a&amp;#039;&amp;#039;, &amp;#039;&amp;#039;b&amp;#039;&amp;#039;, ...} and atomic function symbols &amp;#039;&amp;#039;F = {f&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, g&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;, ...}&amp;#039;&amp;#039; (where subscripts are meta-notational indicating arity), and variables &amp;#039;&amp;#039;x&amp;#039;&amp;#039;, &amp;#039;&amp;#039;y&amp;#039;&amp;#039;, ..., all constants, variables, and well-formed function applications are basic terms (a function application is well-formed when the function symbol is applied to the appropriate number of arguments, which can be drawn from the atomic terms, variables, or can be other basic terms)&lt;br /&gt;
&lt;br /&gt;
* Any basic term is a term&lt;br /&gt;
&lt;br /&gt;
* Given any variable &amp;#039;&amp;#039;x&amp;#039;&amp;#039;, [&amp;#039;&amp;#039;x&amp;#039;&amp;#039;] is a term&lt;br /&gt;
&lt;br /&gt;
* Given any terms &amp;#039;&amp;#039;m&amp;#039;&amp;#039; and &amp;#039;&amp;#039;n&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;m \cdot n&amp;lt;/math&amp;gt; is a term&lt;br /&gt;
&lt;br /&gt;
Some examples of terms are &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;), &amp;#039;&amp;#039;g&amp;#039;&amp;#039;(&amp;#039;&amp;#039;a&amp;#039;&amp;#039;,&amp;#039;&amp;#039;h&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;,&amp;#039;&amp;#039;y&amp;#039;&amp;#039;)), &amp;lt;math&amp;gt;g(x,b) \cdot [x]&amp;lt;/math&amp;gt;. A variable &amp;#039;&amp;#039;x&amp;#039;&amp;#039; is free in a term &amp;#039;&amp;#039;t&amp;#039;&amp;#039; if [&amp;#039;&amp;#039;x&amp;#039;&amp;#039;] does not appear in &amp;#039;&amp;#039;t&amp;#039;&amp;#039;, and a term with no free variables is a closed term. Terms can be typed with pregroup types in the obvious manner.&lt;br /&gt;
&lt;br /&gt;
The usual conventions regarding α conversion apply.&lt;br /&gt;
&lt;br /&gt;
For a given language, we give an assignment &amp;#039;&amp;#039;I&amp;#039;&amp;#039; that maps typed words to typed closed terms in a way that respects the pregroup structure of the types. For the English fragment given above we might therefore have the following assignment (with the obvious, implicit set of atomic terms and function symbols):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(John : N) = j : E&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(Mary : N) = m : E&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(the : N \cdot N_0^l) = \iota(p) \cdot [p] : E \cdot E_0^l&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(dog : N_0) = dog : E_0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(cat : N_0) = cat : E_0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(met : N^r \cdot S \cdot N^l) = [x] \cdot met(x,y) \cdot [y] : E^r \cdot T \cdot E^l&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(barked : N^r \cdot S) = [x] \cdot barked(x) : E^r \cdot T&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;I(at : S^r \cdot N^{rr} \cdot N^r \cdot S \cdot N^l) = [x] \cdot y \cdot [y] \cdot at(x,z) \cdot [z] : T^r \cdot E^{rr} \cdot E^r \cdot T \cdot E^l&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;#039;&amp;#039;E&amp;#039;&amp;#039; is the type of entities in the domain, and &amp;#039;&amp;#039;T&amp;#039;&amp;#039; is the type of truth values.&lt;br /&gt;
&lt;br /&gt;
Together with this core definition of the semantics of PG, we also have a reduction rules that are employed in parallel with the type reductions. Placing the syntactic types at the top and semantics below, we have&lt;br /&gt;
&lt;br /&gt;
[[File:PregroupGrammar-LeftAdjointReduction.png|center|thumb|upright=1.5]]&lt;br /&gt;
&lt;br /&gt;
[[File:PregroupGrammar-RightAdjointReduction.png|center|thumb|upright=1.5]]&lt;br /&gt;
&lt;br /&gt;
For example, applying this to the types and semantics for the sentence &amp;lt;math&amp;gt;John\ met\ Mary : N \cdot (N^r \cdot S \cdot N^l) \cdot N&amp;lt;/math&amp;gt; (emphasizing the link being reduced)&lt;br /&gt;
&lt;br /&gt;
[[File:SemanticCalculation-JohnMetMary.png|center|thumb|upright=1.25]]&lt;br /&gt;
&lt;br /&gt;
For the sentence &amp;lt;math&amp;gt;the\ dog\ barked\ at\ the\ cat : (N \cdot N_0^l) \cdot N_0 \cdot (N^r \cdot S) \cdot (S^r \cdot N^{rr} \cdot N^r \cdot S \cdot N^l) \cdot (N \cdot N_0^l) \cdot N_0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[File:Pregroup-SemanticCalculation-TheDogBarkedAtTheCat.png|center|thumb|upright=2.5]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Compact closed category]]&lt;br /&gt;
* [[Lambek calculus]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* {{cite journal|last=Lambek|first=Joachim|title=Pregroup grammars and Chomsky&amp;#039;s earliest examples|journal=Journal of Logic, Language and Information|year=2008|volume=17|issue=2}}&lt;br /&gt;
* {{cite journal|last=Preller|first=Anna|title=Semantic pregroup grammars handle long distance dependencies in French|journal=Manuscript|year=2007}}&lt;br /&gt;
* Claudia Casadio (2004), [http://www.unich.it/~casadio/ricerca/slidescope.pdf Pregroup Grammar. Theory and Applications]&lt;br /&gt;
&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Grammar frameworks]]&lt;br /&gt;
[[Category:Semantics]]&lt;br /&gt;
[[Category:Type theory]]&lt;/div&gt;</summary>
		<author><name>87.14.239.1</name></author>
	</entry>
</feed>