Isabelle Arnulf
email: isabelle.arnulf@psl.aphp.fr

Smaranda Leu-Semenescu

Sleepiness in Parkinson's disease

Keywords:

Excessive daytime sleepiness is a disabling and vital problem in patients with PD. It affects around 33% patients and culminates in sleep attacks (without prodroma) in 1 to 4% of the patients. When monitored, these patients may have short, narcolepsy-like naps with abnormal intrusion of REM sleep during daytime (and hypnagogic hallucinations as wakeful dreams) are observed in 33-41% patients, while other patients display naps with non REM sleep. Although insomnia, sleep apnea and periodic leg movements are common in these patients, there is no clear link between the night events and the level of sleepiness. Patients treated with dopamine agonists are two to three fold more exposed to sleep attacks than those on levodopa, with large variability between patients. Sleepiness may exist, to a lesser degree, before the onset of parkinsonism and before the use of dopamine agents, suggesting that other, disease-dependant factors contribute to the sleepiness. Most arousal systems are indeed damaged in PD brains, including the locus coeruleus (noradrenalin), the pedunculo-pontine nucleus and the basal forebrain (acetylcholin), the median raphe (serotonin), and the lateral hypothalamus (orexin), while histamine activity dopamine arousal system are normal.

Treating patients with stimulants such as modafinil is only partially efficacious, while trials of anti-H3 drugs and sodium oxybate seem more active. Eventually, the recent stimulation of the pedunculopontine nucleus has stimulant or sedative effects in patients, depending on the frequency of stimulation. These results provide new insights into the mechanisms of arousal in PD.

Keys words: Parkinson's disease, sleepiness, sleep, narcolepsy, pedunculopontine

Sleepiness is frequent and potentially dangerous in Parkinson's disease

Excessive daytime sleepiness is defined as a disabling trend to nod or fall asleep in various circumstances (reading, while attending a meeting, while working) that interferes with familial, professional and social life. It should be differentiated from fatigue (a state of extreme tiredness, weakness or exhaustion, either mental or physical or both) and from apathy (a lack of interest or emotion). Due to the high risk of accident in sleepy drivers, the level of daytime sleepiness must be regularly checked in patients with PD, especially when the dopaminergic treatment is changed. Sleepiness is easily self-assessed using the Epworth sleepiness scale, an instrument that scores the tendency to fall asleep (from 0 to 3) during 8 everyday situations [START_REF] Johns | A new method for measuring daytime sleepiness: the Epworth Sleepiness Scale[END_REF]. The score ranges from 0 to 24, and abnormal somnolence is considered as a value greater than 10 [START_REF] Johns | Sensitivity and specificity of the multiple sleep latency test (MSLT), the maintenance of wakefulness test and the Epworth sleepiness scale,: failure of the MSLT as a gold standard[END_REF]. A score greater than 7 has a 75% sensitivity (and a 50% specificity) in PD for predicting a risk of driving accident [START_REF] Hobson | Excessive daytime sleepiness and sudden-onset sleep in Parkinson Disease. A survey by the Canadian Movement Disorder Group[END_REF]. The scale has been validated in large populations of patients with PD. Case-controlled epidemiological studies performed in various countries consistently document higher sleepiness scores and higher percentage (16 to 74%, usually around one third) of subjects with abnormal somnolence in PD patients than in age-and sex-matched controls [START_REF] Ondo | Daytime sleepiness and other sleep disorders in Parkinson's disease[END_REF][START_REF] Tan | Evaluation of somnolence in Parkinson's disease: comparison with age-and sex-matched controls[END_REF][START_REF] Ghorayeb | A nationwide survey of excessive daytime sleepiness in Parkinson's disease in France[END_REF]. The incidence of sleepiness is 6% per year in a prospective series [START_REF] Gjerstad | Development of daytime somnolence over time in Parkinson's disease[END_REF]. Sleepiness may precede PD onset, as sleepy adults in a large Asian longitudinal study develop 3.3 times more frequent PD later in life [START_REF] Abbott | Excessive daytime sleepiness and subsequent development of Parkinson disease[END_REF].

Patients with PD may also experience sleep attacks, or 'sudden onset of sleep, without prodroma'. Examples of sleep attacks include patients falling asleep during stimulating life conditions, such as eating a meal (the head drooping in the plate), walking, attending work, while carrying a child in an escalator, and in the most dangerous situation, while driving a car. Between 1% and 4% of patients with PD report having experienced sleep attacks while driving [START_REF] Hobson | Excessive daytime sleepiness and sudden-onset sleep in Parkinson Disease. A survey by the Canadian Movement Disorder Group[END_REF][START_REF] Korner | Predictors of sudden onset of sleep in Parkinson's disease[END_REF].

A sleepy intrinsic phenotype in PD

When daytime sleep is monitored in patients with excessive sleepiness using five sequential in lab nap opportunities scheduled every two hours (the multiple sleep latency tests), more than half of them fell asleep within a mean 5 min, which is considered pathological [START_REF] Arnulf | Parkinson's disease and sleepiness: an integral part of PD[END_REF][START_REF] Razmy | Predictors of impaired daytime sleep and wakefulness in patients with Parkinson's disease treated with older (ergot) vs. newer (nonergot) dopamine agonist[END_REF]. Moreover, 41% sleepy patients would fall asleep at least twice directly in REM sleep, an abnormal pattern mostly observed in primary narcolepsy [START_REF] Arnulf | Parkinson's disease and sleepiness: an integral part of PD[END_REF]. In addition, one third of the patients were not aware that they had been sleeping, despite they had long episodes of sleep [START_REF] Merino-Andreu | Unawareness of naps in Parkinson's disease and in disorders with excessive daytime sleepiness[END_REF]. In PD patients with severe hallucinations, abnormal irruptions of REM sleep episodes can be timely associated, during night-time and daytime with the visual hallucinations, as are the hypnagogic hallucinations in primary narcolepsy [START_REF] Arnulf | Hallucinations, REM sleep and Parkinson's disease[END_REF]. Sleepiness may be more frequent in patients with advanced disease [START_REF] Ondo | Daytime sleepiness and other sleep disorders in Parkinson's disease[END_REF]. Sleep deprivation, a condition observed when patients with PD are kept awake at night by restless legs, akinesia or painful dystonia, is a classical cause of somnolence. In large groups of patients with PD however, the longer sleep time at night is associated with more severe daytime sleepiness, an association suggestive of central hypersomnia [START_REF] Arnulf | Parkinson's disease and sleepiness: an integral part of PD[END_REF][START_REF] Razmy | Predictors of impaired daytime sleep and wakefulness in patients with Parkinson's disease treated with older (ergot) vs. newer (nonergot) dopamine agonist[END_REF][START_REF] Rye | FAST TRACK: daytime sleepiness in Parkinson's disease[END_REF]. Similarly, sleep apnea (observed in 20-30% PD patients [START_REF] De Cock | Is obstructive sleep apnea a problem in Parkinson's disease?[END_REF]), periodic leg movement during sleep and sleep fragmentation do not correlate with the severity of daytime sleepiness [START_REF] Arnulf | Parkinson's disease and sleepiness: an integral part of PD[END_REF][START_REF] Razmy | Predictors of impaired daytime sleep and wakefulness in patients with Parkinson's disease treated with older (ergot) vs. newer (nonergot) dopamine agonist[END_REF][START_REF] Rye | FAST TRACK: daytime sleepiness in Parkinson's disease[END_REF], suggesting they do not contribute much to the mechanisms of sleepiness. Patients with REM sleep behavior disorder have no more EDS than those without these behaviors, despite their REM sleep may be disrupted by the violent enacted dreams [START_REF] Cock | Restoration of normal motor control in Parkinson's disease during REM sleep[END_REF].

Arousal systems are damaged in PD

If there is evidence of central hypersomnia in PD, one may look for damage in arousal systems. Most of them are indeed affected by neuronal loss and Lewy bodies in PD brains (Table 1). They include the noradrenaline neurons in the locus coeruleus [START_REF] Jellinger | Pathology of Parkinson's disease: changes other than the nigrostriatal pathways[END_REF], the serotonin neurons in the raphe [START_REF] Jellinger | Pathology of Parkinson's disease: changes other than the nigrostriatal pathways[END_REF], the cholinergic pedunculopontine nucleus [20], the cholinergic neuron in the basal forebrain [START_REF] Jellinger | Pathology of Parkinson's disease: changes other than the nigrostriatal pathways[END_REF], and the orexin neurons (also affected in primary narcolepsy) in the hypothalamus [START_REF] Fronczek | Hypocretin (orexin) loss in Parkinson's disease[END_REF][START_REF] Thannickal | Hypocretin (orexin) cell loss in Parkinson's disease[END_REF]. Despite this important cell loss (and as already observed for dopamine), the cerebrospinal levels of orexin are normal in PD. The cell loss in arousal systems is variable [20], raising the possibility that there are subtypes of the disease with greater or lesser loss of neurons. In contrast, the wake-active dopamine neurons in the ventral periaqueductal gray matter, and the histamine neurons in the hypothalamus are intact in PD brains [23,24]. They could be appropriate targets for central nervous system stimulants.

Sedative effect of dopamine agonists

The mechanisms of sleepiness in PD may include a complex drug-disease interaction. Sleep attacks have indeed first been described in patients using the new non-ergot dopamine agonists drugs pramipexole and ropinirole [START_REF] Frucht | Falling asleep at the wheel: motor vehicle mishaps in persons taking pramipexole and ropinirole[END_REF]. Patients using a dopamine agonist have a twice higher risk of sleep attacks than those using levodopa alone [START_REF] Avorn | Sudden uncontrollable somnolence and medication use in Parkinson disease[END_REF]. The risk of sleep attack is similar using ergotic (bromocriptine, pergolide) or non-ergotic (pramipexole, ropinirole) agonists. When a single dose is given to healthy volunteers, pramipexole is however more sedative than levodopa and bromocriptine [START_REF] Micallef | Antiparkinsonian drug-induced sleepiness: a double-blind placebo-controlled study of L-dopa, bromocriptine and pramipexole in healthy subjects[END_REF]. The peak effect occurs between 3h30 and 5h30 after the drug intake and is not related to hypotension [START_REF] Micallef | Antiparkinsonian drug-induced sleepiness: a double-blind placebo-controlled study of L-dopa, bromocriptine and pramipexole in healthy subjects[END_REF]. The risk increases with increasing daily dosage, especially during the escalation phase [START_REF]Pramipexole vs levodopa as initial treatment for Parkinson disease: A randomized controlled trial. Parkinson Study Group[END_REF], and decreases with drug withdrawal. The recent trials of D2-D3 dopamine agonists with prolonged release (transdermal rotigotine and ropinirole 24-h prolonged release) as adjunct therapy also show more frequent sleepiness in the treated group than in the placebo group, but no sleep attacks yet [START_REF] Pahwa | Ropinirole 24hour prolonged release: randomized, controlled study in advanced Parkinson disease[END_REF][START_REF] Poewe | Efficacy of pramipexole and transdermal rotigotine in advanced Parkinson's disease: a doubleblind, double-dummy, randomised controlled trial[END_REF]. Around 10% of patients with idiopathic restless leg syndrome also experience somnolence induced by small doses of ropinirole or pramipexole [START_REF] Trenkwalder | Ropinirole in the treatment of restless legs syndrome: results from the TREAT RLS 1 study, a 12 week, randomised, placebo controlled study in 10 European countries[END_REF][START_REF] Winkelman | Efficacy and safety of pramipexole in restless legs syndrome[END_REF], suggesting that this is a dopamine agonist class effect. In contrast, levodopa is more rarely sedative [START_REF] Arnulf | Parkinson's disease and sleepiness: an integral part of PD[END_REF], although de novo patients become more sleepy after receiving for one year levodopa or a dopamine agonist [START_REF] Fabbrini | Excessive daytime somnolence in Parkinson's disease. Follow-up after 1 year of treatment[END_REF]. Why drugs that are supposed to stimulate the arousal dopamine system (and do so when given at bedtime [START_REF] Comella | Nocturnal activity with nighttime pergolide in Parkinson disease: a controlled study using actigraphy[END_REF]) are on the contrary sedative ? [Please reword the previous sentence] This effect cannot be explained, at these high doses, by the biphasic effect (presynaptic sedative effect at low dose, post-synaptic alerting effect at high dose) of dopamine agonists that has been described in animals [START_REF] Monti | Biphasic effects of dopamine D-2 receptor agonists on sleep and wakefulness in the rat[END_REF]. Rather, a different selectivity for D1 or D2 receptors may be in cause. D1 agonist and small doses of dopamine increase the firing of orexin neurons in rat hypothalamus, while high concentrations of dopamine and D2 agonist decrease or can even block this firing [START_REF] Co | Bidirectional dopaminergic modulation of excitatory synaptic transmission in orexin neurons[END_REF]. If one extends this concept to PD, one may imagine than patients with a partial orexin deficiency would be sedated by D2-D3 agonists or high doses of levodopa.

How to treat excessive daytime sleepiness in PD

Finding and treating the cause of excessive daytime sleepiness in PD requires an interview on nocturnal disturbances, hallucinations, and recent changes in dopaminergic and psychotropic treatment. If there is no recent change in the treatment, a night-time sleep monitoring (with video monitoring and tibialis anterior electromyography), if possible followed by multiple sleep latency tests, is very informative [START_REF] Carskadon | Guidelines for the Multiple Sleep Latency Test (MSLT) : a standard measure of sleepiness[END_REF]. These tests may document severe sleep apnea, major nocturnal akinesia, dystonia, restless legs, periodic leg movements, REM sleep behavior disorder, slow alpha background rhythm, or a central disorder of arousal. If the efforts to reduce the sedative drugs (clonazepam, other benzodiazepines, dopamine agonists, sedative antidepressants, opioids) are without effect or worsen the motor symptoms, the solution could be to add a stimulant during daytime. The list of stimulants includes caffeine (and in the future some other adenosine receptor antagonists), modafinil, methylphenidate, sodium oxybate and anti-H3 drugs. Modafinil, a drug routinely used in primary narcolepsy and sleepiness of various causes, is well tolerated in PD patients [START_REF] Ondo | Modafinil for daytime somnolence in Parkinson's disease: double blind, placebo controlled parallel trial[END_REF], and has interesting neuroprotective effects in animal models of dopamine depletion [START_REF] Jenner | Antiparkinsonian and neuroprotective effects of modafinil in the mptp-treated common marmoset[END_REF]. The alerting effect is, however, limited in PD, with two-third of non-responders [START_REF] Ondo | Modafinil for daytime somnolence in Parkinson's disease: double blind, placebo controlled parallel trial[END_REF]. Sodium oxybate (or GHB) is used at night in primary narcolepsy, as high doses increase deep slow wave sleep and reduce the subsequent daytime sleepiness. A similar benefit has been recently demonstrated in an open trial in 20 PD patients with excessive sleepiness [START_REF] Ondo | Sodium oxybate for excessive daytime sleepiness in Parkinson disease: an open-label polysomnographic study[END_REF]. The slow wave sleep duration doubled, and the Epworth sleepiness score decreased by -7 after the intake of 9 g of sodium oxybate twice a night, with no change in disability scores. GHB is however a respiratory and central nervous depressant, and can cause, alone or associated with alcohol, some confusional states blocks dopamine release and cell firing, and dopamine stores accumulate, possibly explaining increased alertness after the drug has cleared. Methylphenidate, a potent stimulant blocking the catecholamine reuptake and increasing dopamine levels in the brain, seems to be useful for ameliorating cognition, apathy, and gait in small, open-labeled series of patients with PD [START_REF] Devos | Improvement of gait by chronic, high doses of methylphenidate in patients with advanced Parkinson's disease[END_REF]. Studies are however lacking before its use could be recommended in patients with daytime sleepiness. Drugs blocking the presynaptic reuptake of histamine (anti-H3 drugs) are developed as stimulants in narcolepsy and PD [START_REF] Lin | An inverse agonist of the histamine H(3) receptor improves wakefulness in narcolepsy: studies in orexin-/-mice and patients[END_REF]. In a recent double-blind, placebo-controlled, dose-ranging study, a 20 mg dose of tiprolisant (an anti-H3 drug) reduced subjective sleepiness and Epworth score by -5 points [START_REF] Arnulf | Results of clinical trials of tiprolisant in narcolepsy and Parkinson's disease[END_REF]. Eventually, the recent use of the pedunculopontine nucleus as a target for deep brain stimulation in PD patients with freezing provides unexpected insights into the sleep and alertness mechanisms in humans. Stimulating this area with low frequency increases REM sleep during the night [START_REF] Romigi | Pedunculopontine nucleus stimulation influences REM sleep in Parkinson's disease[END_REF][START_REF] Lim | Selective enhancement of rapid eye movement sleep by deep brain stimulation of the human pons[END_REF], while patients report they feel more alert during daytime [START_REF] Stefani | Non-motor functions in parkinsonian patients implanted in the pedunculopontine nucleus: Focus on sleep and cognitive domains[END_REF]. On the contrary, using high frequency stimulation (possibly blocking this nucleus) induces an immediate sedation and sleep onset [START_REF] Arnulf | Sleep induced by stimulation in the human pedunculopontine nucleus area[END_REF]. Via their massive projection to the thalamus, the cholinergic neurons of the pedunculopontine tegmental nucleus, together with the adjacent laterodorsal tegmentum nucleus, play a critical role in switching behavioral states from non-REM sleep to stages involving cortex activity, including wakefulness and REM sleep [START_REF] Saper | Hypothalamic regulation of sleep and circadian rhythms[END_REF].

These preliminary results open new insights into controlling alertness and sleep in PD.

In conclusion, excessive daytime sleepiness in PD probably results from a complex drug/disease interaction. Researches are now focused on the dopamine/orexin interactions, on new pharmacological means to increase altertness, and on the fascinating effects on sleep and alertness of the pedunculo-pontine nucleus area stimulation.

Table 1 :

 1 Arousal systems in Parkinson's disease

	Nucleus	Neurotransmitter	Cell loss in PD
			brains, %


Extremal functions and symmetry breaking in

Caffarelli-Kohn-Nirenberg inequalities Jean Dolbeault (joint work with M. Esteban, M. Loss, G. Tarantello, A. Tertikas)

We consider the extremal functions for the interpolation inequalities introduced by Caffarelli, Kohn and Nirenberg in [START_REF] Caffarelli | First order interpolation inequalities with weights[END_REF], that can be written as (1)

R d |u| p |x| bp dx 2 p ≤ C CKN (θ, a, b) R d |∇u| 2 |x| 2a dx θ R d |u| 2 |x| 2(a+1) dx 1-θ
where u is a smooth function with compact support in R d \{0} and the parameters are in the range: b ∈ (a + 1/2, a

+ 1] if d = 1, b ∈ (a, a + 1] if d = 2 and b ∈ [a, a + 1] if d ≥ 3, a = (d -2)/2 =: a c , p = 2d d-2+2(b-a) and θ ∈ [ϑ(p, d), 1] with ϑ(p, d) := d (p -2)/(2 p).
We also consider weighted logarithmic Hardy inequalities, introduced in [4], which correspond to the limit θ = γ (p -2), p → 2 + and read as

(2) R d |u| 2 |x| 2(a+1) log |x| d-2-2a |u| 2 dx ≤ 2γ log C GLH (γ, a) R d |∇u| 2 |x| 2a dx for any smooth function u such that |x| -(a+1) |u L 2 (C) = 1, with compact support in R d \ {0}. The parameters are such that a < a c , γ ≥ d/4 and γ > 1/2 if d = 2.
Inequalities (1) and ( 2) can be extended to the larger space D 1,2 a (R d ) obtained by completion with respect to the norm u → R d |x| -2a |∇u| 2 dx. Extremal functions are such that the inequalities, written with their optimal constants, become equalities. We shall assume that C CKN (θ, p, a) and C GLH (γ, a) are optimal, i.e. take their lowest possible value. By a Kelvin transformation (see [START_REF] Dolbeault | The role of Onofri type inequalities in the symmetry properties of extremals for Caffarelli-Kohn-Nirenberg inequalities, in two space dimensions[END_REF]), the case a > a c can be reduced to the case a < a c . For simplicity, we shall assume that a < a c .

The case θ = 1, p ∈ [2, 2 * ] and d ≥ 3 has been widely discussed in the literature. Existence of extremal functions for (1) has been studied in various papers in case θ = 1: see [START_REF] Catrina | On the Caffarelli-Kohn-Nirenberg inequalities: sharp constants, existence (and nonexistence), and symmetry of extremal functions[END_REF] and references therein for details. Radial symmetry of the extremal functions is an important issue, which has been established in a number of cases: see [START_REF] Chou | On the best constant for a weighted Sobolev-Hardy inequality[END_REF][START_REF] Dolbeault | On the symmetry of extremals for the Caffarelli-Kohn-Nirenberg inequalities[END_REF][START_REF] Dolbeault | The role of Onofri type inequalities in the symmetry properties of extremals for Caffarelli-Kohn-Nirenberg inequalities, in two space dimensions[END_REF][START_REF] Horiuchi | Best constant in weighted Sobolev inequality with weights being powers of distance from the origin[END_REF][START_REF] Smets | Partial symmetry and asymptotic behavior for some elliptic variational problems[END_REF][START_REF] Dolbeault | On the symmetry of extremals for the Caffarelli-Kohn-Nirenberg inequalities[END_REF]. Extremal functions are then entirely determined and the value of the optimal constants is known. On the other hand, symmetry breaking, which means that extremal functions are not radially symmetric, holds for

(3) d ≥ 2 , b < 1 2 (a -a c ) 2 - d (a -a c ) 2 + d -1 ,
as it has been established in [START_REF] Catrina | On the Caffarelli-Kohn-Nirenberg inequalities: sharp constants, existence (and nonexistence), and symmetry of extremal functions[END_REF][START_REF] Dolbeault | The role of Onofri type inequalities in the symmetry properties of extremals for Caffarelli-Kohn-Nirenberg inequalities, in two space dimensions[END_REF][START_REF] Felli | Perturbation results of critical elliptic equations of Caffarelli-Kohn-Nirenberg type[END_REF]. Moreover, according to [START_REF] Dolbeault | On the symmetry of extremals for the Caffarelli-Kohn-Nirenberg inequalities[END_REF], a continuous curve p → a(p) with values in the region a < 0, b < a + 1 separates the symmetry breaking region from the region where radial symmetry holds. The case θ < 1 of Inequality (1) has been much less considered. Symmetry breaking has been established in [START_REF] Del Pino | A logarithmic Hardy inequality[END_REF] in a region which extends the one found in [START_REF] Dolbeault | The role of Onofri type inequalities in the symmetry properties of extremals for Caffarelli-Kohn-Nirenberg inequalities, in two space dimensions[END_REF][START_REF] Felli | Perturbation results of critical elliptic equations of Caffarelli-Kohn-Nirenberg type[END_REF]. If either d = 1 or d ≥ 2 but for radial functions, existence of extremal functions for (1) has been proved in [START_REF] Del Pino | A logarithmic Hardy inequality[END_REF] for any θ > ϑ(p, d). However, the best constant is not achieved if θ = ϑ(p, d) and d = 1. Existence of extremal functions without symmetry assumption and some results of radial symmetry have also been obtained in [START_REF] Dolbeault | Extremal functions for Caffarelli-Kohn-Nirenberg and logarithmic Hardy inequalities[END_REF][START_REF] Dolbeault | Radial symmetry and symmetry breaking for some interpolation inequalities[END_REF].

A symmetry breaking result for (2) has been established in [START_REF] Del Pino | A logarithmic Hardy inequality[END_REF] when

(4) d ≥ 2 , a < -1/2 and γ < 1 4 + (a -a c ) 2 d -1 .
It is very convenient to reformulate Inequalities ( 1) and ( 2) in cylindrical variables as in [START_REF] Catrina | On the Caffarelli-Kohn-Nirenberg inequalities: sharp constants, existence (and nonexistence), and symmetry of extremal functions[END_REF]. By means of the Emden-Fowler transformation 2) respectively, when the set of functions is restricted to the radially symmetric ones. From [START_REF] Del Pino | A logarithmic Hardy inequality[END_REF], we know that

t = log |x| ∈ R , ω = x |x| ∈ S d-1 , y = (t, ω) , v(y) = |x| ac-a u(x) , Inequality (
C CKN (θ, p, a) ≥ C * CKN (θ, p, a) = C * CKN (θ, p, a c -1) Λ p-2 2p -θ C WLH (γ, a) ≥ C * WLH (γ, a) = C * WLH (γ, a c -1) Λ -1+1/(4γ)
where Λ = (aa c ) 2 . Symmetry breaking means that the above inequalities are strict. Finding extremal functions amounts to minimize the functionals

E[v] := ∇v 2 L 2 (C) + Λ v 2 L 2 (C) θ v 2(1-θ) L 2 (C) / v 2 L p (C) , F [w] := ∇w 2 L 2 (C) +Λ w 2 L 2 (C) w 2 L 2 (C) exp -1 2γ C |w| 2 w 2 L 2 (C) log |w| 2 w 2 L 2 (C)
dy .

Radial symmetry for (1) and ( 2) means that there are minimizers of E and F which depend only on t.

The method of [START_REF] Catrina | On the Caffarelli-Kohn-Nirenberg inequalities: sharp constants, existence (and nonexistence), and symmetry of extremal functions[END_REF][START_REF] Felli | Perturbation results of critical elliptic equations of Caffarelli-Kohn-Nirenberg type[END_REF][START_REF] Del Pino | A logarithmic Hardy inequality[END_REF] for proving symmetry breaking goes as follows. In case of Inequality (1), consider a symmetric minimizer v * of E, depending only on t. Up to a scaling and a multiplication by a constant, v

* (t) = (cosh t) -2/(p-2) solves (p -2) 2 v ′′ -4 v + 2 p |v| p-2 v = 0 .
An expansion of E[v] at order two around v * involves the operator L := -∆ + κ w * p-2 + µ for some κ and µ which are explicit in terms of θ, p and d. Eigenfunctions are characterized in terms of Legendre's polynomials and spherical harmonic functions. The eigenspace of L corresponding to the lowest eigenfunction is generated by w * (after a multiplication by a constant and a scaling). The eigenfunction λ 1,0 associated to the first non trivial spherical harmonic function is not radially symmetric. Condition (3) is determined by requiring that λ 1,0 < 0, which implies that C CKN (θ, p, a) > C * CKN (θ, p, a). In case of Inequality (2), a similar analysis can be done. The radial minimizer is a Gaussian function in t and the operator L is the Schrödinger operator with harmonic potential.

Symmetry results in [START_REF] Dolbeault | On the symmetry of extremals for the Caffarelli-Kohn-Nirenberg inequalities[END_REF][START_REF] Dolbeault | Radial symmetry and symmetry breaking for some interpolation inequalities[END_REF] also involves some spectral analysis. By considering sequences (v n ) n∈N of minimizers of E appropriately normalized by the condition

v n 2 L p (C) = 1, one proves that ∇v n 2 L 2 (C) is bounded when either b = b n con- verges to a + 1, or a = a n → 0 -if θ = 1, or a = a n → a c-if θ < 1.
Minimizers being solutions of an elliptic PDE, the convergence to a limit actually holds locally uniformly, which allows to write a linear equation for D ω v n , where D ω denotes an appropriate derivative with respect to ω. By spectral gap considerations, we conclude that D ω v n ≡ 0 for n large enough: v n depends only on t.

Using scaling properties, it has been proved in [START_REF] Dolbeault | On the symmetry of extremals for the Caffarelli-Kohn-Nirenberg inequalities[END_REF][START_REF] Dolbeault | Radial symmetry and symmetry breaking for some interpolation inequalities[END_REF] that there is a curve separating the region of symmetry for (3) from the region of symmetry breaking. The same property holds for (2). However, in both cases, no quantitative estimates are known about the position of the curve in the region a < 0. It is an open question to decide whether it coincides with the region defined by ( 3) and (4) or not.

  [START_REF] Caffarelli | First order interpolation inequalities with weights[END_REF] for u is equivalent to a Gagliardo-Nirenberg-Sobolev inequality on the cylinderC := R × S d-1 : for any v ∈ H 1 (C), C |v| p dy 2 p ≤ C CKN (θ, p, a) = (a ca) 2 . Similarly, with w(y) = |x| ac-a u(x), (2) is equivalent to C |w| 2 log |w| 2 dy ≤ 2 γ log C WLH (γ, a) C |∇w| 2 dy + Λ for any w ∈ H 1 (C) such that w L 2 (C) = 1.We shall denote by C * CKN (θ, p, a) and C * WLH (γ, a) the optimal constants for (1) and (

Acknowlegments. This work has been partially supported by the project EVOL of the French National Research Agency (ANR).


Metod Saniga
email: msaniga@astro.sk

On the Veldkamp Space of GQ(4, 2)

Keywords: GQ(4, 2) -Geometric Hyperplane -Veldkamp Space -PG(3, 4)

The Veldkamp space, in the sense of Buekenhout and Cohen, of the generalized quadrangle GQ(4, 2) is shown not to be a (partial) linear space by simply giving several examples of Veldkamp lines (V-lines) having two or even three Veldkamp points (V-points) in common. Alongside the ordinary V-lines of size five, one also finds V-lines of cardinality three and two. There, however, exists a subspace of the Veldkamp space isomorphic to PG(3, 4) having 45 perps and 40 plane ovoids as its 85 V-points, with its 357 V-lines being of four distinct types. A V-line of the first type consists of five perps on a common line (altogether 27 of them), the second type features three perps and two ovoids sharing a tricentric triad (240 members), whilst the third and fourth type each comprises a perp and four ovoids in the rosette centered at the (common) center of the perp (90). It is also pointed out that 160 non-plane ovoids (tripods) fall into two distinct orbits -of sizes 40 and 120with respect to the stabilizer group of a copy of GQ(2, 2); a tripod of the first/second orbit sharing with the GQ(2, 2) a tricentric/unicentric triad, respectively. Finally, three remarkable subconfigurations of V-lines represented by fans of ovoids through a fixed ovoid are examined in some detail.

Introduction

Generalized quadrangles of types GQ(2, t), with t = 1, 2, and 4, have recently been found to play a prominent role in quantum information and black hole physics; the first type for grasping the geometrical nature of the so-called Mermin squares [START_REF] Planat | On the Pauli graphs of N-qudits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF], the second for underlying commutation properties between the elements of two-qubit Pauli group [START_REF] Planat | On the Pauli graphs of N-qudits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF], and the third one for fully encoding the E 6(6) symmetric entropy formula describing black holes and black strings in D = 5 [START_REF] Lévay | Black hole entropy and finite geometry[END_REF]. Whereas GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF] is isomorphic to its point-line dual, this is not the case with the remaining two geometries; the dual of GQ(2, 1) being GQ [START_REF] Planat | On the Pauli graphs of N-qudits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF], that of GQ(2, 4) GQ(4, 2) [START_REF] Payne | Finite Generalized Quadrangles[END_REF]. These two duals, strangely, did not appear in the above-mentioned physical contexts. It is, therefore, natural to ask why this is so. We shall try to shed light on this matter by invoking the concept of the Veldkamp space of a point line incidence structure [START_REF] Buekenhout | Diagram Geometry (Chapter 10.2[END_REF]. The Veldkamp space of GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF] was shown to be a linear space isomorphic to PG(5, 2) [START_REF] Saniga | The Veldkamp space of GQ(2, 4)[END_REF]. Here, we shall demonstrate that the Veldkamp space of GQ [START_REF] Lévay | Black hole entropy and finite geometry[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF], due to the existence of two different kinds of ovoids in GQ [START_REF] Lévay | Black hole entropy and finite geometry[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF], is not even a partial linear space, though it contains a (linear) subspace isomorphic to PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF] in which GQ(4, 2) lives as a non-degenerate Hermitian variety.

Rudiments of the Theory of Finite Generalized Quadrangles and Veldkamp Spaces

To make our exposition as self-contained as possible, and for the reader's convenience as well, we will first gather all essential information about finite generalized quadrangles [START_REF] Payne | Finite Generalized Quadrangles[END_REF], then introduce the concept of a geometric hyperplane [START_REF] Ronan | Embeddings and hyperplanes of discrete geometries[END_REF] and, finally, that of the Veldkamp space of a point-line incidence geometry [START_REF] Buekenhout | Diagram Geometry (Chapter 10.2[END_REF].

A finite generalized quadrangle of order (s, t), usually denoted GQ(s, t), is an incidence structure S = (P, B, I), where P and B are disjoint (non-empty) sets of objects, called respectively points and lines, and where I is a symmetric point-line incidence relation satisfying the following axioms [START_REF] Payne | Finite Generalized Quadrangles[END_REF]: (i) each point is incident with 1 + t lines (t ≥ 1) and two distinct points are incident with at most one line; (ii) each line is incident with 1 + s points (s ≥ 1) and two distinct lines are incident with at most one point; and (iii) if x is a point and L is a line not incident with x, then there exists a unique pair (y, M ) ∈ P × B for which xIM IyIL; from these axioms it readily follows that |P | = (s + 1)(st + 1) and |B| = (t + 1)(st + 1). It is obvious that there exists a point-line duality with respect to which each of the axioms is self-dual. Interchanging points and lines in S thus yields a generalized quadrangle S D of order (t, s), called the dual of S. If s = t, S is said to have order s. The generalized quadrangle of order (s, 1) is called a grid and that of order (1, t) a dual grid. A generalized quadrangle with both s > 1 and t > 1 is called thick. Every finite generalized quadrangle is obviously a partial linear space, that is the point-line incidence structure where a) any line has at least two points and b) any two points are on at most one line.

Given two points x and y of S one writes x ∼ y and says that x and y are collinear if there exists a line L of S incident with both. For any x ∈ P define the perp of x as x ⊥ = {y ∈ P |y ∼ x} and note that x ∈ x ⊥ , being its center; obviously, |x ⊥ | = 1 + s + st. Given an arbitrary subset A of P , the perp of A, A ⊥ , is defined as A ⊥ = {x ⊥ |x ∈ A} and A ⊥⊥ := (A ⊥ ) ⊥ ; in particular, if x and y are two non-collinear points, then {x, y} ⊥⊥ is called a hyperbolic line (through them). A triple of pairwise non-collinear points of S is called a triad; given any triad T , a point of T ⊥ is called its center and we say that T is acentric, centric or unicentric according as |T ⊥ | is, respectively, zero, non-zero or one. An ovoid of a generalized quadrangle S is a set of points of S such that each line of S is incident with exactly one point of the set; hence, each ovoid contains st + 1 points. The dual concept is that of spread; this is a set of lines such that every point of S is on a unique line of the spread. A rosette of ovoids is a set of ovoids through a given point x of S partitioning the set of points non-collinear with x. A fan of ovoids is a set of ovoids partitioning the whole point set of S; if S has order (s, t) then every rosette contains s ovoids and every fan features s + 1 ovoids.

A geometric hyperplane H of a point-line geometry Γ(P, B) is a proper subset of P such that each line of Γ meets H in one or all points [START_REF] Ronan | Embeddings and hyperplanes of discrete geometries[END_REF]. For Γ = GQ(s, t), it is well known that H is one of the following three kinds [START_REF] Payne | Finite Generalized Quadrangles[END_REF]: (i) the perp of a point x, x ⊥ ; (ii) a (full) subquadrangle of order (s, t ′ ), t ′ < t; and (iii) an ovoid.

Finally, we shall introduce the notion of the Veldkamp space of a point-line incidence geometry Γ(P, B), V(Γ) [START_REF] Buekenhout | Diagram Geometry (Chapter 10.2[END_REF]. V(Γ) is the space in which (i) a point is a geometric hyperplane of Γ and (ii) a line is the collection

H 1 H 2 of all geometric hyperplanes H of Γ such that H 1 ∩ H 2 = H 1 ∩ H = H 2 ∩ H or H = H i (i = 1, 2)
, where H 1 and H 2 are distinct points of V(Γ).

Basic Properties of GQ(4, 2)

The unique generalized quadrangle GQ(4, 2), associated with the classical group PGU 4 (2), can be represented by 45 points and 27 lines of a non-degenerate Hermitian surface H(3, 4) in PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF], the three-dimensional projective space over GF(4) [START_REF] Payne | Finite Generalized Quadrangles[END_REF][START_REF] Brouwer | Ovoids and fans in the generalized quadrangle Q(4, 2)[END_REF][START_REF] Hirschfeld | On the history of generalized quadrangles[END_REF]. Every line has five points and there are three lines through every point. This quadrangle features both unicentric and tricentric triads, 1and has no spreads. There are 16 tricentric triads through each point; hence, their total number is 45 × 16/3 = 240. Its geometric hyperplanes are (45) perps of points and (200) ovoids, because it has no subquadrangles of type GQ(4, 1) [START_REF] Payne | Finite Generalized Quadrangles[END_REF].

Obviously, perps correspond to the cuts of H(3, 4) by its 45 tangent planes. As first shown by Brouwer and Wilbrink [START_REF] Brouwer | Ovoids and fans in the generalized quadrangle Q(4, 2)[END_REF], ovoids fall into two distinct orbits of sizes 40 and 160. The ovoids of the first orbit are called plane ovoids, as each of them represents a section of H(3, 4) by one of the 40 non-tangent planes. The ovoids of the second orbit are referred to as tripods, each comprising nine isotropic points on three hyperbolic lines {x, y} ⊥⊥ , {x, z} ⊥⊥ and {x, w} ⊥⊥ , where {x, y, z, w} is a basis of non-isotropic points; in other words, every tripod can be viewed as a unique union of three tricentric triads. Given a plane ovoid P and any two distinct points x, y ∈ P, it is always true that {x, y} ⊥⊥ ⊆ P. Hence, {P \ {x, y} ⊥⊥ } ∪ {x, y} ⊥ is again an ovoid, and all the tripods can be obtained in this manner from plane ovoids. GQ(4, 2) contains both fans and rosettes of ovoids [START_REF] Brouwer | Ovoids and fans in the generalized quadrangle Q(4, 2)[END_REF]. There are altogether 520 fans, each made of a plane ovoid and four tripods and falling into two orbits of sizes 480 and 40, and 26 rosettes on a given point; two of them feature four plane ovoids, the remaining ones consist of four tripods each.

Apart from perps and ovoids, GQ(4, 2) is endowed with one more kind of distinguished subgeometry -that isomorphic to the unique generalized quadrangle GQ(2, 2); this is, however, not a geometric hyperplane. There are altogether 36 distinct copies of GQ(2, 2) living inside GQ(4, 2), and with any of them an ovoid is found to share a triad. For a plane ovoid this triad is always tricentric. For tripods, however, it can be either tricentric (40 of them) or unicentric (120 of them); in what follows we shall occasionally refer to the former/latter as tri-tripods/uni-tripods, respectively. There exists a remarkable partitioning of the point-set of GQ(4, 2) in terms of three Figure 1: A diagrammatical model of the structure of GQ(4, 2) whose points are illustrated by bullets and lines by straight segments, arcs of ellipses and/or parabolas, and two circles (for more details, see the text). Note a particular copy of GQ(2, 2) (black), its complement (red) being nothing but famous Schläfli's double-six of lines. GQ(2, 1)s and three GQ(1,2)s such that one of the latter group forms with each of the former group a GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF]. Another noteworthy property is the existence of pairs of plane ovoids and/or tri-tripods on the common (tricentric) triad whose symmetric difference is a disjoint union of two GQ(1, 2)s.

All the above-mentioned properties can be ascertained -some readily, some requiring a bit of work -from a diagrammatical illustration of GQ(4, 2) depicted in Figure 1. In this picture, of a form showing an automorphism of order five, all the 45 points of GQ(4, 2) are represented by bullets, whereas its 27 lines have as many as four distinct representations: two are represented by (concentric) circles, five by arcs of parabolas touching the inner circle, another five by parabolas touching the outer circle, five by arcs of ellipses, and, finally, 10 by straight line-segments. (Note that there are many intersections of segments and arcs that do not stand for any point of GQ(4, 2).) A copy of GQ(2, 2) is also highlighted (black bullets, all line-segments and all arcs of ellipses).

4 Distinguished Features of the Veldkamp Space of GQ(4, 2)

4.1 Linear Subspace Isomorphic to PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF] In PG(3, 4) a point and a plane are duals of each other. On the other hand, both a perp and a plane ovoid are associated each with a unique plane of PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF]. Hence, disregarding tripods for the moment, we find a subspace of the Veldkamp space of GQ(4, 2) that is isomorphic to PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF]. The 85 V-points of this subspace are 45 perps and 40 planar ovoids, and the 357 V-lines split into four distinct types as shown in Figure 2. A V-line of the first type (1-st row in Figure 2) consists of five perps on a common pentad of collinear points i. e. on a common line; clearly, there are 27 V-lines of this type as each line leads to a unique V-line. A second-type V-line (2-nd row) features three perps and two ovoids sharing a tricentric triad; since each such triad defines a unique Vline, there are altogether 240 V-lines of this type. Third-/fourth-type V-lines (3-rd/4-th row) each comprises a perp and four ovoids in the rosette centered at the perp's center (the only common point); their total number thus amounts to 2 × 45 = 90.

Examples of V-lines on Three and Two Common Points

In order to show that V(GQ(4, 2)) is not a (partial) linear space it suffices to find two (or more) V-lines sharing two (or more) V-points. From the previous subsection it should already be fairly obvious that it is the existence of tripods that prevents V(GQ(4, 2)) from being a linear space.

Figure 2: Representatives of the four different types of V-lines forming the linear subspace of V(GQ(4, 2) isomorphic to PG [START_REF] Havlicek | Factor-group-generated polar spaces and (multi-)qudits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF]. The encircled bullets represent the points shared by all the five V-points forming a given V-line.

To this end, let us have again a look at a type-two V-line of the PG(3, 4)-subspace, reproduced once again in Figure 3, top row. It turns out that we can get a new type of V-line by replacing its two plane ovoids by two particular tripods, as shown in Figure 3, bottom row. Hence, we have an example of two distinct V-lines having three V-points (the three perps) in common.

Figure 3: An instance of two distinct V-lines having three V-points in common. We note in passing that the tripods are tri-tripods with respect to the selected copy of GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF].

The next couple of examples feature three (Figure 4) and four (Figure 5) V-lines through two common V-points. In the first case, the V-lines consist each of a perp and four tripods in the rosette centered at the perp's center; the perp and the first tripod are the common V-points. With respect to the selected GQ(2, 2), the first two tripods in each V-line are tri-tripods, the other two being uni-tripods. In the second case, each of the four V-lines represents a fan of ovoids, the first ovoid being planar, second a tri-tripod, and the remaining three uni-tripods.

Examples of V-lines of Size Three and Two

That the structure of V(GQ(4, 2)) is much more complex and intricate than that of any (partial) linear space is, alongside the above-introduced examples, also illustrated by the existence of V-lines of cardinality less than five. Thus, we found many V-lines of size three, like the one shown in Figure 6. This V-line consists of a perp and two (uni-)tripods on a common unicentric triad; since two perps, obviously, cannot share a unicentric triad and a given perp contains 48 such triads, we find altogether 45 × 48 = 2160 V-lines of this particular kind. Finally, there are also a large number of V-lines of size two; the one depicted in Figure 7 is composed of a plane ovoid and a tripod having six points in common.

V-lines as Fans of Ovoids Through a Given Ovoid

We shall finish the paper by having a closer look at very impressive subconfigurations of V-lines represented by fans of ovoids. One first recalls (Sec. 3) that a fan of ovoids of GQ(4, 2) is a pentad of (pairwise disjoint) ovoids partitioning the point set. Every fan comprises -as already shown in Figure 5 -a plane ovoid, a tri-tripod and three uni-tripods; in the figures below these are represented by red-, green-and yellow-coloured circles, respectively.

Given a plane ovoid, there are no plane ovoids, 10 tri-tripods and 30 uni-tripods disjoint from it. Figure 8 ("spider") depicts the configuration of 13 fans of ovoids through a plane ovoid (P). We see a remarkable pattern. One tri-tripod (4) has a special standing as there are four distinct fans passing through it. Similarly, three out of 30 uni-tripods (namely 19, 25 and 28) have a particular footing as there are four distinct fans through each of them. Leaving the distinguished fan {P, 4, 19, 25, 28} aside, the remaining twelve fans form four classes of cardinality three each. In each class the fans have two ovoids in common (namely P and 4, P and 19, P and 25, and P and 28); whereas in the first class the two ovoids are both plane ovoids, in the remaining three they are of two distinct kinds. Hence, considering the multiplicities and character of mutual intersection of fans, the totality of the latter is split into five subsets in a [3 + 3 + 3] + (3) + 1 fashion; the "1" corresponds, naturally, to the distinguished fan {P, 4, 19, 25, 28}.

Given a tri-tripod, there are 10 plane ovoids, no tri-tripods and 21 uni-tripods disjoint from it. Figure 9 ("bee") depicts the configuration of 13 fans of ovoids through a tri-tripod (X). We again see a remarkable pattern. One plane ovoid (5) has a special standing as there are four distinct fans passing through it. Similarly, three out of 21 uni-tripods (11, 13 and 20) have a particular footing as there are seven distinct fans through each of them. The split of the whole family of fans again shows a [3 + 3 + 3] + (3) + 1 pattern; the "1" here symbolizes the distinguished fan {5, X, 11, 13, 20}. This case differs from the previous one in two crucial aspects. First, the three size-three classes here are such that their fans have three ovoids in common (namely X, 11 and 13; X, 11 and 20; and X, 13 and 20), whilst the fans of the fourth class share only a couple of ovoids (X and 5). Second, one finds three pairs of ovoids, namely X and 11, X and 13, and X and 20, such that there go as many as seven distinct fans through each of them.

Given a uni-tripod, there are 10 plane ovoids, 7 tri-tripods and 14 uni-tripods disjoint from it. Figure 10 ("frog") illustrates the configuration of 13 fans through a uni-tripod (O). We again see a remarkable pattern. One plane ovoid (8) has a special standing as there pass four different fans through it. Similarly, one tri-tripod (4) and two uni-tripods (2 and 10) have also a special footing, as each of them is shared by seven distinct fans. One sees here, however, a slightly different [3 + 3] Here and in the following two figures as well, each ovoid is represented by a numbered circle -the particulars of the numbering being completely irrelevant for our purpose -and every fan comprises five different circles (one red, one green and three yellow ones, their order being also irrelevant) joined by broken line-segments and/or arcs of big circles (e. g., {P, 1, 28, 13, 30 }, {P, 2, 28, 12, 14}, {P, 3, 28, 6, 18}, etc.). Figure 9: The same as in the previous figure for a tri-tripod (X). Note a "tighter coupling" (i. e., higher-multiplicity intersections) between the fans within each of the three classes and between the classes themselves when compared with the plane ovoid case. What is the nature of the three distinguished fans? This is quite easy to spot. The nine points of a plane ovoid can always be partitioned into three pairwise disjoint tricentric triads. Since a plane ovoid contains 12 tricentric triads, there exist four different ways such a partitioning can be done. Given any of them, the nine centers of the triads generate a (unique) tripod; the plane ovoid and its four associated tripods form a distinguished fan of ovoids. In all the three above-discussed cases, the distinguished fan is the only one sharing with each of the remaining twelve at least one additional ovoid apart from the common one, and thus fully deserves its name.

Conclusion

We have furnished several examples showing that the Veldkamp space of GQ(4, 2) is not a (partial) linear space. This is in a sharp contrast with the case of the dual, GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF], whose Veldkamp space is a linear space, being isomorphic to PG(5, 2) [START_REF] Saniga | The Veldkamp space of GQ(2, 4)[END_REF]. We surmise that this fact, among other things, might also contain an important clue why it is GQ [START_REF] Saniga | Projective ring line encompassing two-qubits[END_REF][START_REF] Lévay | Black hole entropy and finite geometry[END_REF], not GQ(4, 2), which is relevant for a particular black-hole/qubit correspondence [START_REF] Lévay | Black hole entropy and finite geometry[END_REF].

Figure 4 :

 4 Figure 4: An example of three different V-lines on two common V-points (a perp and a (tri-)tripod).

Figure 5 :

 5 Figure 5: An example of four different V-lines sharing two V-points (a plane ovoid and a (tri-)tripod).

Figure 6 :

 6 Figure 6: An example of V-line of size three.

Figure 7 :

 7 Figure 7: An example of V-line of size two.

Figure 8 :

 8 Figure8: A diagrammatic illustration of the qualitative relation between the 13 fans of ovoids sharing a plane ovoid (P). Here and in the following two figures as well, each ovoid is represented by a numbered circle -the particulars of the numbering being completely irrelevant for our purpose -and every fan comprises five different circles (one red, one green and three yellow ones, their order being also irrelevant) joined by broken line-segments and/or arcs of big circles (e. g., {P, 1, 28, 13, 30 }, {P, 2, 28, 12, 14}, {P, 3, 28, 6, 18}, etc.).

Figure 10 :

 10 Figure 10: The same as in the previous two figures for a uni-tripod (O).

GQ(4,

2) is also endowed with acentric triads, but these are of no relevance for our subsequent reasoning.

Acknowledgements

This work was conceived within the framework of the Cooperation Group "Finite Projective Ring Geometries: An Intriguing Emerging Link Between Quantum Information Theory, Black-Hole Physics, and Chemistry of Coupling" at the Center for Interdisciplinary Research (ZiF), University of Bielefeld, Germany, being completed with the support of the VEGA grant agency, projects Nos. 2/0092/09, 2/0098/10 and 2/7012/27. I am extremely grateful to Prof. Hans Havlicek (Vienna University of Technology) for providing me with an easy-to-use software for generating the first seven figures. I also thank Richard Green (University of Colorado, Boulder) for motivating combinatorial remarks and Petr Pracna (J. Heyrovský Institute of Physical Chemistry, Prague) for providing me with the electronic versions of the last three figures.


Jean-Marie Mottu
email: jmottu@irisa.fr

Benoit Baudry
email: bbaudry@irisa.fr

Yves Le Traon
email: yves.letraon@telecom-bretagne.eu

Model transformation testing: oracle issue

The definition of an oracle function for model transformation is challenging because of the very complex nature of models resulting from a transformation. Validating the correctness of an output model requires checking a large number of properties on the structure and semantics of this model. The oracle function can thus be very complex if it checks every property. In this paper, we identify and discuss important issues that must be tackled to define model transformation testing oracles. We also propose several oracle functions and analyze how they take advantage of different model driven engineering techniques.

Introduction

Model transformations are intensively used for model-driven development (MDD) in order to automate critical operations in the development such as refinement, code generation or refactoring. The automation of these operations should increase reuse from one project to the other and thus save time and effort. However, this automation also introduces additional risks of errors due to faulty transformations. Thus, systematic and effective testing of model transformations is necessary to the success of modeldriven development.

Two problems need to be solved when tackling model transformation testing: efficient test data selection and the definition of an oracle function. An oracle function analyzes the validity of models produced by the model transformation. This paper focuses on this second problem.

The definition of an oracle function for model transformation is challenging because of the very complex nature of models resulting from a transformation. The result of a model transformation is a model that conforms to a metamodel. The metamodel defines both the structure of the model in terms of classes and relationships as well as its semantics. A model is manipulated as a graph of objects that instantiate the classes from the metamodel and that are related according to the relationships and constraints defined in the metamodel.

This paper discusses some of the challenges related to the definition of an oracle function for model transformation testing. We highlight several issues related to developing oracles depending on the testing context.

With respect to oracle definition, we will discuss the use of several model-driven engineering (MDE) techniques. We propose and analyze six possible oracle functions which check models resulting from a transformation. These functions differ on the information they require from the tester.

We propose the different solutions for the oracle and present an example that illustrates the different approaches to the oracle definition problem. Based on this first experiment, we analyze the different tradeoffs that must be considered when choosing a particular oracle function for a model transformation.

In section 2, we introduce the model transformation testing issue. In section 3, we go into the details of the oracle definition that we have studied. We discuss the problems that arise when developing and applying the oracles. In section 4, we use a model transformation to illustrate the definition of such oracles and we analyze this work in the section 5.

Model transformations and their testing

Model-Driven Development (MDD) aims to provide automated support for creating and transforming software models. Effective support for model transformations is thus key to successful realization of MDD in practice. In this section, we introduce the model transformations and discuss the challenges that must be addressed when testing them. One example is introduced to assist the explanations.

Model transformation

Figure 1 shows a generic transformation framework that provides the context for discussion in this paper. A model transformation manipulates concepts that are specified in the source and target metamodels (which can be different). These metamodels describe the static structure of the models that are manipulated by the transformation. In the transformations we have developed, these metamodels conform to the MOF [START_REF] Omg | MOF 2.0 Core Final Adopted Specification[END_REF]. In some cases, these metamodels are augmented with constraints (expressed in OCL for example) that more precisely constrain the structure of models that are manipulated by the transformation. In the case of the UML metamodel, these constraints are the well-formedness rules.

A transformation takes an input model that conforms to the source metamodel and produces an output model, which conforms to the target metamodel. In the following, we consider transformations that take a single input model and produce a single output model.

The precondition shown in Figure 1 further constrains (in addition to the source metamodel and its associated constraints) the type of models that can be input to the transformation. The post condition specifies expected properties on the output model as well as properties that link the input and the output models. These additional constraints are of the same nature as the constraints on the metamodels, but they are specific to the transformation.

One significant model transformation

We illustrate this paper with a transformation which transforms a class model to an RDBMS model as an illustrative example. Its specification has been proposed in the MTIP workshop [START_REF] Bezivin | Model Transformations in Practice Workshop[END_REF]. It is made of a set of complex rules. The implementation of such a system requires complex operations on the input model with recursivity, navigations with transitive closure, and several passes. For instance, the class model of the Figure 2 is made with several classes, several rules specify how the persistent classes, their attributes and their associations should be transformed into tables, columns and keys. Following the specification, this sample input model is transformed into the RDBMS model of the Figure 3. Any output model conforms to the RDBMS metamodel illustrated in Figure 4.

The structure described in this metamodel can be reinforced with constraints. For instance, an RDBMS model cannot contain two tables with the same name. This constraint written in OCL is:

context RDBMSModel inv: self.table.forAll(t1,t2|
t1.name = t2.name implies t1 = t2 )

We do not detail all the specification of the transformation T but only a set of rules that we composed in a homogeneous rule:

Ru: "The persistent classes, and only these ones, are transformed into tables with same names, except if they inherit directly or not from another persistent class"

In addition to the different rules, the specification also restrains the input domain with contracts. For instance, one can impose that in any class model, each class should have at least one primary attribute. The underline reason is that the corresponding table will have at least one column which is its primary key. This constraint written in OCL is:

context

Model transformation testing

Model transformations manipulate models, which are very complex data structure. This makes the problems of test data generation and selection, as well as the oracle definition very difficult.

For example, to test the class to RDBMS transformation, test data generation consists in building class models such as the one displayed Figure 2. We can imagine that the test set should contain one model with inheritance, one with no inheritance, one with one persistent class, one with more than one persistent class… So the first challenge is to define criteria for test data generation. Then, there is still a lot effort required to build all the models necessary to satisfy the criteria.

Then, the oracle function has to validate that the produced table is correct, according to the requirements and the class model provided an input to the transformation. For example, it must check that if there is only one persistent class A in the input model, then there is only one table, called A, in the output table. Thus, this oracle has to manipulate two models and check a number of properties. The challenge here is to formalize all the properties and to express them with respect to input and output modeling languages.

The issues related to input test data generation are outside the scope of this paper. Initial results are proposed in other works. Fleurey et al. [START_REF] Fleurey | Towards Dependable Model Transformations: Qualifying Input Test Data[END_REF] define several test adequacy criteria, adapting categorypartitions on the input metamodel of the transformation. Automatic generation of models has been studied by Ehrig et al. [START_REF] Ehrig | Generating Instance Models from Meta Models[END_REF], and in Sen et al. [START_REF] Sen | On Combining Multi-formalism Knowledge to Select Models for Model Transformation Testing[END_REF], we also propose an approach for test models generation.

In this paper, we focus on the issue of defining oracle function, assuming that a set of test data can be provided. As we detail it in the following, there are many different ways to define this function, depending on the effort provided and on the amount of information that is available (formal specification, expected output, etc.). We believe that the analysis of the different oracle functions will lead to a better understanding of the challenges for model transformation and will allow us to compare the different solutions in the future for a better and systematic engineering of test generation.

Oracle issue

This section introduces the oracle issue in model transformation testing.

Validate the output models

The oracle checks the validity of the output model returned by the transformation of one test model. It analyzes a model and returns the verdict for the test case.

Few works mention the oracle function for model transformation, and they usually consider that the expected model for a particular run of the transformation is available [START_REF] Lin | DSMDiff: A Differentiation Tool for Domain-Specific Models[END_REF][START_REF] Heckel | Towards Model-Driven Testing[END_REF]. Thus, they transform the problem of oracle definition into a problem of model comparison. Although this approach has to be considered and efficient solutions for model comparison will help the definition of an oracle function, we believe that considering the oracle only through this perspective is too restrictive. First, the expected model is not easy to obtain, and the tester might face difficulties to produce expected models for all the test cases. Secondly, there are several other ways to analyze the output model and produce a verdict that should not be neglected because they could fit more easily the tester needs. Finally, we believe that a model transformation testing oracle should not be reduced to a data but has to be considered as a full function with its parameters.

In order to analyze the definition of an oracle in a broader way than simple model comparison, we consider the oracle as a parameterized function. The first parameter is the output model returned by the transformation. The second parameter must be provided by the tester, and we call it the "oracle data". This data provides details to verify the output model. It is the main parameter of the oracle. For instance, it can be the expected model of the test case; it can also be the test model if an oracle needs to extract information from it to check the output model.

In the following, we analyze the different data that can be provided and the different functions that can be defined, depending on the oracle data.

Three MDE techniques to implement oracle functions

In this section we introduce three Model Driven Engineering (MDE) techniques that manipulate and analyze models and that can be used to implement model transformation oracles.

Model comparison

Current MDE technologies and model repositories store and manipulate models as graphs of objects. The complexity of these data structures makes it difficult to provide an efficient and reliable tool for comparison. In the general case, model comparison is equivalent to computing graph isomorphism problem which is NPcomplete. However, several studies have proposed simplified versions of this comparison that can be used at a much lower computation cost. Porres et al. [START_REF] Alanen | Difference and Union of Models[END_REF] present a theoretical framework for performing model differencing. However, they rely on the use of unique element identifiers for the model elements. This assumption cannot hold when the models are produced by different means. Other algorithms based on the metamodels despite the objects identifiers have been proposed. In [START_REF] Lin | DSMDiff: A Differentiation Tool for Domain-Specific Models[END_REF], Lin et al. proposed such an algorithm. Little studied, the model comparison gets to be implemented in tools like EMFCompare [START_REF]Eclipse Foundation[END_REF].

The model comparison can be used in different oracle functions. They compare a reference model with a model resulting from the transformation of the test model. The reference models can be available or can be obtained. Hence they can be compared by the oracle.

Contracts

Pre and post conditions form the contract for a method. They are assertions that are evaluated before and after the execution of one method [START_REF] Le Traon | Design by Contract to Improve Software Vigilance[END_REF]. Contracts can be defined for a model transformation. The pre condition constrains the set of licit models and the post condition declares a set of properties that can be expected on the output model.

Several researchers have studied the use of contracts as a partial oracle functions in object oriented system [START_REF] Le Traon | Design by Contract to Improve Software Vigilance[END_REF][START_REF] Briand | Investigating the Use of Analysis Contracts to Improve the Testability of Object Oriented Code[END_REF]. This approach can be adapted to define an oracle for model transformation. In previous work [START_REF] Mottu | Reusable MDA Components: A Testing-for-Trust Approach[END_REF], we proposed a process for specifying and implementing model transformations oracle with contracts expressed in OCL. However, contracts can also be implemented with other languages and tools, like Kermeta or a rule-based transformation language like ATOM3 [START_REF] De Lara | AToM3: A Tool for Multi-formalism and Meta-modelling[END_REF]. In [START_REF] Kolovos | Model Comparison: A Foundation for Model Composition and Model Transformation Testing[END_REF], Kolosov et al. present another way to link the output and the input models with rules. They are based on the comparison of the objects of the input and output models, and they define contracts in such a manner between input and output models. In [START_REF] Küster | Validation of Model Transformations -First Experiences using a White Box Approach[END_REF], Küster et al. have also noticed that constraints can be used as oracle.

Pattern matching

A pattern can be defined as a "piece of model" or a set of model elements. Pattern matching then consists in checking the presence of a pattern in a model. We present two techniques to write the patterns: with assertions, or with model snippets.

In this paper, we consider patterns expressed as OCL assertions or as model snippets [START_REF] Ramos | Matching Model-Snippets[END_REF]. A snippet is a "piece of model" where every object is an instance of a metaclass defined in the metamodel, and the model snippet is a subset of a model that conforms to the metamodel. Samples are explained in the illustrative section 4.1.5. Having patterns expressed in this way, it is possible for the tester to write them using the same editor that he uses to write test models.

For the oracle, the patterns express constraints on the output model. In that sense, they can be considered as post-conditions, but contrary to the contracts, the patterns focus on a specific output model. Thus, patterns can be considered as assertions that should be true when running the transformation with a particular test data. Each assertion or a conjunction of several ones can be associated to a test case as the oracle data of an oracle function. It should be true to ensure the validity of the corresponding output model and the success of the test.

Six model transformation testing oracles

Six solutions are thus available to obtain the oracle when executing a test data on a model transformation.

1-Oracle using a reference model transformation:

A comparison is made between the output model (mtout) returned by the transformation of the test model and a reference model returned by the reference model transformation.

The tester should provide an oracle data which is the reference version (R) of the model transformation. This reference transformation can produce the reference model from the test model (mt).

The oracle function is the function O 1 as such:

O 1 (mtout , (R, mt)) : Boolean is do result := compare(mtout , R(mt)) end

2-Oracle using an inverse transformation

A comparison is made between the test model mt and the model obtained after two transformations of the test model: the first with the transformation under test and the second with the inverse transformation.

The tester should provide this inverse transformation (I) as oracle data. But it is only possible if the model transformation is an injective function (which is unlikely), otherwise the transformation can not be undone.

The oracle function is the function O 2 as such:

O 2 (mtout, (I, mt)) : Boolean is do result := compare(mt , I(mtout)) end

3-Oracle using an expected output model

A comparison is made between the output model (mtout) returned by the transformation of the test model and an expected model (mtexpected) provided by the tester.

The oracle function is the function O 3 as such:

O 3 (mtout, mtexpected) : Boolean is do result := compare(mtout, mtexpected) end

4-Oracle using a generic contract

A generic contract in an oracle function is a post condition of the transformation which constrains the outputs depending on the inputs.

The oracle checks if the output model satisfies the generic contract depending on its corresponding test model (mt). The tester should provide a generic contract (Cg) which is able to analyze both the test model (mt) and its corresponding output model (mtout). This contract can check the validity of this output model according to a part more or less important of the specification.

The oracle function is the function O 4 as such:

O 4 (mtout, (Cg, mt)) : Boolean is do result := (mtout,mt).satisfies(Cg) end

5-Oracle using an OCL assertion

The oracle checks if the output model satisfies the OCL assertion.

The tester should provide an OCL assertion (Cd) which is able to analyze the output model. This constraint doesn't consider the test model, it is then dedicated to a test case and its test model, it only checks the validity of their corresponding output model. The tester will express in this constraint the properties the output model has to contain. It is not mandatory to express all the properties because this task can be more simply made with an expected model.

The oracle function is the function O 5 as such:

O 5 (mtout,Cd) : Boolean is do result := mtout.satisfies(Cd)) end

6-oracle using model snippets

The oracle checks if the output model (mtout) contains n model snippets (ms).

The tester should provide a pattern in the form of a list of model snippets, each one is associated to a cardinality and a logical operator. These two last express how many times the model snippet should be found in the output model (mtout).

The

Illustration

In this section, we illustrate the implementation of an oracle with the six different oracle functions we propose.

Implementation of the test cases

First the tester gets a set of test cases. We consider only the test model of the Figure 2. With the initial specification, the model is transformed into the RDBMS model of the Figure 3, only a table B is created.

To illustrate the reusability of the different oracles, we create an evolution T' of the transformation T and the rule Ru becomes:

Ru': "The persistent classes, and only these ones, are transformed into tables with same names" With this new specification, the input model is transformed in the RDBMS model of the Figure 5. The persistent classes with persistent parent are also transformed and the output model contains an additional table D.

In the following, we consider the definition of oracle functions to check the validity of these output models considering the rules Ru and Ru'.

. Reference model transformation

The implementation made with Kermeta [START_REF] Muller | On Executable Meta-Languages applied to Model Transformations[END_REF] is a program with 113 lines of code, in 11 operations. The tester could use an other implementation of the model transformation under test, such as one made for this workshop by Lawley and Steel [START_REF] Lawley | Practical Declarative Model Transformation With Tefkat[END_REF]. It's a functional implementation written in Tefkat, made with 94 lines of code, in 8 patterns and 5 rules. The complexity of this second implementation is important, its validity is no more confident, and moreover when the tester will have to adapt it to the new specification, he will need to learn a new language, understand the implementation and modify it correctly. Hence, even if the tester can take advantage of an existing reference model transformation, its difficult reuse with a new version and the risk inherent at its complexity don't ensure the quality of this oracle. The use of a reference version is too much complex, its writing is a developer task and not a tester task.

Inverse transformation

The model transformation is not injective: it is not possible for example to get the classes A or C from the output model. This oracle can not be used here and according to our experience this is often the case.

Expected model

The tester should produce the expected models of the Figure 3 and Figure 5. They are as complicated as the test model and obviously as the output models since they check their entire validity. We notice that they contain many useless concepts (attributes, types, keys) when considering only the rule studied. It is important to notice that this requires a large effort compared to the simplicity of the evolution of the specification. This oracle function implies doubling of the complexity and the effort to write the new expected model while the evolution from one version of the transformation to another is simple.

Generic contract

It is possible to write a generic contract in OCL (an equivalent can be written in Kermeta for instance): This contract is not very complex, but the rule considered is one of the simplest. It is possible to write it differently especially with another contract language. But we can notice than the navigations and selections are quite repetitive. To test all the transformation, a set of generic contracts has to be written to consider all the requirements. We needed 14 contracts in total to completely specify the transformation. This contract can be reused for the new version of the transformation by removing the two bold select(…). The other contracts also have to be adapted in such a way, even if they do not consider this specific rule.

In [START_REF] Mottu | Reusable MDA Components: A Testing-for-Trust Approach[END_REF], we pointed out a limitation of OCL as the language for expressing contracts. When contracts become too complex, they are difficult to express and maintain, and this may lead to the introduction of faults in these contracts.

Model snippets

The Figure 6 represents five model snippets based on the RDBMS metamodel. MF1 to MF4 define only one named table, and MF5 with an unnamed table. So, these snippets can be used in oracle function where one wants to assert the presence of a table named B (with MF1), or A (with MF2), or C (with MF3), or D (with MF4), or to assert the presence of a table that has no name (with MF5). We use these model snippets to write several oracles: o1: {(MF1 , 1 , =)} o2: {(MF2 , 0 , =) , (MF3 , 0 , =)} o3: {(MF4 , 0 , =)} o4: {(MF5 , 1 , =)}

We use these oracles to check the validity of the output model (Figure 3) returned by the transformation of the test model Mt1 (Figure 2) considering the rule Ru.

The oracle o1 validates "The persistent classes…are transformed into tables with same names": since there is a persistent class B in the test model, o1 checks that there is a table named B in the output model. o2 validates "and only these ones": since there are two non persistent classes in Mt1, o2 checks that there is no table with the same names. o3 validates "except if they inherit directly or not from another persistent class": since there is a persistent class D which inherits from the persistent class B, o3 checks there is no table named D in the output model. Finally o4 validates also "and only these ones" but without specifically considering the attributes persistent; o4 checks that only one table is created in the output model.

With these four oracles, four test cases can be written using the same test model.

These model snippets and their oracles are quite simple to write and to modularize depending on the rule considered. It is easy to reuse them with the new version: o1 and o2 are the same, and o3 is adapted by changing the cardinality to 1 because all the persistent classes even with a persistent parent are transformed and o4 with the cardinality 2 because the output model should only contain 2 tables.

. OCL Assertions

The patterns of the four previous oracles (4.1.5) can be implemented with OCL assertions. For instance the second pattern could be: These constraints can also be easily reused but we think they are less easy to write. Even if learning a constraint language as OCL is not a complicated task for the tester, write patterns in the same way than test model is an advantage.

First analysis

In this section, we make a first analysis of these six oracle functions depending on the context the testers will use them in their test cases for model transformations. The context can differ depending on the complexity of the model transformation under test, of its output models, on the reuses and evolutions of this model transformation.

A high complexity of the model transformation under test is an obstacle to oracles using reference or inverse model transformations. As an inverse transformation is as complicated as the model transformation, the tester will have difficulties to get or develop trustable versions of them (sometimes it is even impossible). With a complex model transformation, it is necessary to use oracles which do not consider all the requirements at the same time. This is the case of the patterns (model snippets, OCL assertions), or of the generic contracts and even of the expected models.

A high complexity of the output models returned by the model transformation makes it difficult to use oracles which check the validity of an entire model at once. In this case the expected models and their oracle function should not be used.

When many test models are necessary, at least so many test cases are created. To reduce the effort and the risk of making an error, it is necessary that each test case does not have its own oracle, but that an oracle is reused in different test cases. Such oracle is generic and not dedicated to a test case, its test model, and its corresponding output model. Oracle functions using patterns (model snippets, assertions) or expected models are not adapted since they need the writing of at least one oracle data for each test case. Generic oracle data are preferable since they are written only once, and could be used with their corresponding oracle function in any test case. Reference, inverse transformations and generic contracts are generic oracle data that could be used in the case of numerous test cases.

Finally we consider the reuse and evolution of the model transformations. An oracle data and its oracle function will be reused in the test cases of the new version if the changes in the specification do not affect them. Then oracles which check the validity of the output models with respect to many requirements will have more chance to be affected by the slightest change in the specification. Therefore, we would not advise the tester to use the reference and inverse transformation because they will be affected by any change of the specification. Many expected models could also need adaptation if the specification impacts a part of the implementation that is often used during the test models transformations (as in our example). The generic contracts have a comparable problem. A contract could be made with several repetitive navigations and filterings. Even if a generic contract is dedicated to check few requirements, it could contain such navigation and filtering that could be affected by the specification changes. The patterns do not have these problems since they check only a few requirements and are dedicated to test cases and their input model. They will be a little affected by specification changes.

Conclusion

We have presented the issues that a tester will face during the specification of model transformation testing oracles. The complexity of the model transformation and the data they are manipulated, the models, raise the complexity to write oracles. We presented several oracle functions that can be used in test cases and we provide several advices to choose a function despite another one depending on the complexity of these output models and model transformations, and how these lasts will be reused.

In further work, it will be necessary for us to provide strict criteria to completely measure the advantages and drawbacks of each oracle function depending on their oracle data.

Figure 1 .

 1 Figure 1. General framework for model transformation T

Figure 2 .

 2 Figure 2. Input model Mt1

Figure 3 .

 3 Figure 3. Output model from T(Mt1)

Figure 4 .

 4 Figure 4. Output RDBMS metamodel

Figure 5 .

 5 Figure 5. Output model from T'(Mt1) 4.1.1. Reference model transformationThe implementation made with Kermeta[START_REF] Muller | On Executable Meta-Languages applied to Model Transformations[END_REF] is a program with 113 lines of code, in 11 operations. The tester could use an other implementation of the model transformation under test, such as one made for this workshop by Lawley and Steel[START_REF] Lawley | Practical Declarative Model Transformation With Tefkat[END_REF]. It's a functional implementation written in Tefkat, made with 94 lines of code, in 8 patterns and 5 rules. The complexity of this second implementation is important, its validity is no more confident, and moreover when the tester will have to adapt it to the new specification, he will need to learn a new language, understand the implementation and modify it correctly. Hence, even if the tester can take advantage of an existing reference model transformation, its difficult reuse with a new version and the risk inherent at its complexity don't ensure the quality of this oracle. The use of a reference version is too much complex, its writing is a developer task and not a tester task.

  Figure 6. Five RDBMS model snippets 4.1.6. OCL AssertionsThe patterns of the four previous oracles (4.1.5) can be implemented with OCL assertions. For instance the second pattern could be:

Table FKey

 FKey

	RDBMSModel
	1..*	table	pkey
				Column
			1..*
			cols	name: String
				type: String
	1	references	1..*
	*			1..*	cols
	fkeys

  oracle function is the function O 6 as such:

	O 6 (mtout,list{(ms,n,op)}) : Boolean is
	do
	result := list.forAll(
	compare(nb_match (mtout,ms), n, op))
	//compares 2 numbers depending on
	//a logical operator op,
	//and returns a boolean
	end