This grammar covers the language L = {ww | w in {a, b}}, using a Tree Adjoining Grammar (TAG) encoding developed by Ralph Debusmann and Marco Kuhlmann (the same encoding as used for the XTAG grammar generator of the XDK). It was written by Ralph Debusmann.
usedim id usedim lp usedim idlp usedim lex %% defdim id { deftype "id.label" {"A_s" "A_a" "B_s" "B_a" "S_s" "S_a"} deflabeltype "id.label" defentrytype {in: iset("id.label") out: valency("id.label")} %% useprinciple "principle.graph1Constraints" { dims {D: id} } useprinciple "principle.graph1Dist" { dims {D: id} } useprinciple "principle.tree" { dims {D: id} } useprinciple "principle.in" { dims {D: id} } useprinciple "principle.out" { dims {D: id} } useprinciple "principle.xTAGRoot" {dims {D: id}} %% output "output.latex1" output "output.pretty1" } %% defdim lp { deftype "lp.label" {"0" "1" "2" "21" "22"} deflabeltype "lp.label" defentrytype {in: iset("lp.label") out: valency("lp.label") anchor: "lp.label" foot: set("lp.label")} %% useprinciple "principle.graph1Constraints" { dims {D: lp} } useprinciple "principle.graph1Dist" { dims {D: lp} } useprinciple "principle.tree" { dims {D: lp} } useprinciple "principle.in" { dims {D: lp} } useprinciple "principle.out" { dims {D: lp} } useprinciple "principle.xTAG" { dims {D: lp}} output "output.latex1" output "output.pretty1" } %% defdim idlp { defentrytype {link: vec("lp.label" set("id.label"))} %% useprinciple "principle.xTAGLinking" { dims {D1: id D2: lp D3: idlp} } useprinciple "principle.xTAGRedundant" { dims {D1: id D2: lp} } output "output.latex1" output "output.pretty1" } %% defdim lex { defentrytype {word: string tree: string} useprinciple "principle.entries" {} output "output.allDags1" output "output.xTAGDerivation" output "output.allLatexs1" useoutput "output.allDags1" %useoutput "output.xTAGDerivation" } %% defclass "alpha1" A { dim id {in: {"S_s"} out: {"A_s"! "S_a"?}} dim lp {in: top out: {"1"! "2"?} anchor: "21" foot: {}} dim idlp {link: {"1": {"A_s"} "2": {"S_a"}}} dim lex {word: A tree: "alpha1"}} defclass "alpha2" B { dim id {in: {"S_s"} out: {"B_s"! "S_a"?}} dim lp {in: top out: {"1"! "2"?} anchor: "21" foot: {}} dim idlp {link: {"1": {"B_s"} "2": {"S_a"}}} dim lex {word: B tree: "alpha2"}} defclass "alpha3" A { dim id {in: {"A_s"} out: {"A_a"?}} dim lp {in: top out: {"0"?} anchor: "1" foot: {}} dim idlp {link: {"0": {"A_a"}}} dim lex {word: A tree: "alpha3"}} defclass "alpha4" B { dim id {in: {"B_s"} out: {"B_a"?}} dim lp {in: top out: {"0"?} anchor: "1" foot: {}} dim idlp {link: {"0": {"B_a"}}} dim lex {word: B tree: "alpha4"}} defclass "beta1" A { dim id {in: {"S_a"} out: {"A_s"! "S_a"?}} dim lp {in: top out: {"1"! "2"?} anchor: "22" foot: {"21"}} dim idlp {link: {"1": {"A_s"} "2": {"S_a"}}} dim lex {word: A tree: "beta1"}} defclass "beta2" B { dim id {in: {"S_a"} out: {"B_s"! "S_a"?}} dim lp {in: top out: {"1"! "2"?} anchor: "22" foot: {"21"}} dim idlp {link: {"1": {"B_s"} "2": {"S_a"}}} dim lex {word: B tree: "beta2"}} defentry { "alpha1" {A: "a"} } defentry { "alpha2" {B: "b"} } defentry { "alpha3" {A: "a"} } defentry { "alpha4" {B: "b"} } defentry { "beta1" {A: "a"} } defentry { "beta2" {B: "b"} }