[Right triangle ⏵ may be expanded, down triangle ⏷ to close. Button = tree pop-up. × = close pop-up.]

Terminal: run. Derivation Graphs: (left-to-right) compact / full; (top-down) full / compact.

Help: blue = parse inside. Abbr.: WS: Workspace; Initial WS: initial heads for Merge after LEX lookup.
×

Words: did a train arrive
Initial WS 1: arriveθ varrive:pst:ext(do) traina INFLv
WS 1: {arriveθ, traina} varrive:pst:ext(do) INFLv
WS 2: {varrive:pst:ext(do), {arriveθ, traina}} INFLv
WS 3: {INFLv, {varrive:pst:ext(do), {arriveθ, traina}}} 
Final WS: {C, {INFLv, {varrive:pst:ext(do), {arriveθ, traina}}}} 
INT/EXT: {C, {INFLv, {varrive:pst:ext(do), {arriveθ, traina}}}}
EXT: a train 3sg pst arrive
Spellout: a train arrived
Blocked: inconsistent with input!
EXT: there 3sg pst arrive a train
Spellout: there arrived a train
Blocked: inconsistent with input!
Final WS: {CQ:aux(null,pst,arrive), {INFLv, {varrive:pst:ext(do), {arriveθ, traina}}}} 
INT/EXT: {CQ:aux(null,pst,arrive), {INFLv, {varrive:pst:ext(do), {arriveθ, traina}}}}
EXT: null pst arrive →→ a train 3sg pst arrive
Spellout: 3sg pst do a train arrive
Spellout: did a train arrive
Parse found: null pst arrive →→ a train 3sg pst arrive
EXT: null pst arrive →→ there 3sg pst arrive a train
Spellout: 3sg pst do there arrive a train
Spellout: did there arrive a train
Blocked: inconsistent with input!