The language of geometry: Fast comprehension of geometrical primitives and rules in human adults and preschoolers

During language processing, humans form complex embedded representations from sequential inputs. Here, we ask whether a “geometrical language” with recursive embedding also underlies the human ability to encode sequences of spatial locations. We introduce a novel paradigm in which subjects are exposed to a sequence of spatial locations on an octagon, and are asked to predict future locations. The sequences vary in complexity according to a well-defined language comprising elementary primitives and recursive rules. A detailed analysis of error patterns indicates that primitives of symmetry and rotation are spontaneously detected and used by adults, preschoolers, and adult members of an indigene group in the Amazon, the Munduruku, who have a restricted numerical and geometrical lexicon and limited access to schooling. Furthermore, subjects readily combine these geometrical primitives into hierarchically organized expressions. By evaluating a large set of such combinations, we obtained a first view of the language needed to account for the representation of visuospatial sequences in humans, and conclude that they encode visuospatial sequences by minimizing the complexity of the structured expressions that capture them.

We first define the syntax of LG and then introduce its formal semantics.
Any program p is a list of the form [p 1 , p 2 , . . . , p ], where each p i is either an instruction in I, or an expression of the form q s , or q s i , or q s {i}, where where q is a program, s is the decimal representation of some positive integer, and i ∈ I.
Semantics. The idea is that any program p of LG on input n describes a string in Σ + . The instructions in I will allow us to navigate from a given point n into another, and the expressions of the form q s , or q s i , or q s {i} will represent three kind of loops, which will allow us to repeat a given pattern along the circle.
Let p = [p 1 , . . . , p ] be a program of LG and let n be a number in {0, . . . , 7}. We define the string p(n) ∈ Σ + recursively in the complexity of p: • If = 1 and p 1 / ∈ I then p(n) is recursively defined as follows: where n 0 def = n and n k+1 is the last symbol of q(n k ). In other words, q s on input n represents a path given by: start in n and repeat s times the path represented by q.
In other words, q s i on input n represents a path given by: follow the path represented by q starting in n. Say this is path σ 0 . Then construct a path σ 1 which consists of applying i to each single point of σ 0 . Repeat this until you reach σ s−1 if p 1 = q s {i} and q(n) = x 1 . . . x k (for x j ∈ Σ), then p(n) def = q(n 0 ) q(n 1 ) . . . q(n s−1 ), where n 0 def = n and n k+1 def = [i](n k ). In other words, q s {i} on input n represents a path given by: repeat s times the following: starting in n, follow the path represented by q, and set n := [i](n).
•  Complexity. We define a Kolmogorov complexity relative to LG, that is, a measure of succinctness of a given string σ ∈ Σ + when the language of description is LG. Those strings which admit a small program describing it will have small complexity, and those strings which can only be described by large programs will have high complexity. Before defining formally the notion of complexity, we need to formalize the idea of size of a program. Let p = [p 1 , . . . , p ] be a program. With |p| we denote the size of p . Roughly, |p| is the number of letters needed to write down p. Formally, |p| is defined as follows: • If = 1 and p 1 ∈ I then |p| def = 2.
In Figure 2 we show the complexity of some strings σ and all programs p such that p(0) = σ and |p| = K(σ).